{
  "conditions": [
    {
      "key": "lunaFull",
      "model": "openai/gpt-6-luna",
      "condition": "GR",
      "label": "Luna · full pipeline"
    },
    {
      "key": "solFull",
      "model": "openai/gpt-6.1-sol",
      "condition": "GR",
      "label": "Sol · full pipeline"
    },
    {
      "key": "lunaNoTables",
      "model": "openai/gpt-6-luna",
      "condition": "gR",
      "label": "Luna · without table definitions"
    }
  ],
  "sources": [
    {
      "source": "bench/results/final3-openai_gpt-6-luna/results.rescored.jsonl",
      "sha256": "f29bac33806de5ab5013d2e746c2613a53d37bbda5ac8e2e7ba6630f2ebcb901"
    },
    {
      "source": "bench/results/final3-openai_gpt-6.1-sol/results.rescored.jsonl",
      "sha256": "85f8c5f37d987fb1c0a1a497c0cd34ff637265e430f1574dbbbe5625a08994bf"
    }
  ],
  "adjudicationRule": "- **R1 — Open wording/content choices:** accept reasonable greetings, summaries,\n  identifiers, field selection, and wording that the request leaves unspecified.\n- **R2 — Visible contracts:** do not demand a tag encoding, text-link convention,\n  or event-only implementation that exists only in fixture setup.\n- **R3 — Empty reports:** accept silence or one truthful zero/none report for an\n  empty digest/count; retain silence for empty per-item or explicit conditional actions.\n- **R4 — Dates and schedules:** accept reasonable unspecified dates, calendar-week\n  starts, monthly cohorts, and unqualified schedule phases. Explicit times and\n  named windows remain binding.\n- **R5 — Contradictions:** retain checks for wrong destinations/recipients,\n  excluded rows, wrong windows, duplicates, runtime errors, and complete tag/word filters.",
  "requests": [
    {
      "id": "aggregate-01",
      "request": "Every Monday at 9 AM, count my unread Work Emails and send me a summary notification.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "two unread work inbox messages",
        "no unread work inbox messages",
        "empty data"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[two unread work inbox messages] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-02",
      "request": "Every Friday at 5 PM, count tasks completed this week and create a summary note.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "this-week completions and week-boundary decoys",
        "only previous week",
        "empty data"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[this-week completions and week-boundary decoys] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[this-week completions and week-boundary decoys] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[this-week completions and week-boundary decoys] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-03",
      "request": "Every Monday, send a digest to my Work Email of tasks completed last week, grouped by category.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "last week categories and week boundaries",
        "nothing completed last week",
        "empty data"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[last week categories and week boundaries] expected 1 deliveries to com.lattice.email#work::send-email, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[last week categories and week boundaries] expected 1 deliveries to com.lattice.email#work::send-email, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[last week categories and week boundaries] expected 1 deliveries to com.lattice.email#work::send-email, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-04",
      "request": "Every Sunday, count bookmarks saved this week grouped by tag, and email me a reading-list summary from my Personal Email.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "individual tags with duplicates and week decoys",
        "only bookmarks from prior week",
        "empty data",
        "different tag counts"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[individual tags with duplicates and week decoys] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[individual tags with duplicates and week decoys] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[individual tags with duplicates and week decoys] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-05",
      "request": "Every month, aggregate my notes by tag, count entries per tag, and send a summary to my Personal Email.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "individual tags across all note ages",
        "empty data",
        "unequal tag totals"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[individual tags across all note ages] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[individual tags across all note ages] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[individual tags across all note ages] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-06",
      "request": "Every Sunday at 6pm, send me an email summarizing all the money spent on Splitwise this week with the grand total.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "weekly purchases with separate USD/EUR grand totals",
        "empty ledger",
        "different decimal total"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[weekly purchases with separate USD/EUR grand totals] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[weekly purchases with separate USD/EUR grand totals] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[weekly purchases with separate USD/EUR grand totals] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-07",
      "request": "Every Monday morning at 8am, send a desktop notification with the total distance in kilometers I ran on Strava over the last 7 days.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "meters converted, exact seven-day lower boundary",
        "no runs",
        "fractional kilometer"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[meters converted, exact seven-day lower boundary] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[meters converted, exact seven-day lower boundary] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[meters converted, exact seven-day lower boundary] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-08",
      "request": "On the first day of every month at 9am, make a note in Notes listing all the books I finished reading in Goodreads during the last 30 days.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "slash dates and unrated finished books",
        "no finished books in window",
        "empty reading log"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[no finished books in window] missing explicit zero/none summary"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[slash dates and unrated finished books] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[slash dates and unrated finished books] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-09",
      "request": "Every Saturday morning at 10am, send an email to my personal inbox with the count of all unread notification threads in GitHub Inbox.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "string IDs and unread flag",
        "empty inbox can report zero or stay silent",
        "no scheduler tick means no mail"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-10",
      "request": "On the last day of each month at 6pm, total up all the hours and miles I logged in Strava over the last 30 days and record it in a training log note in Notes.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "leap February end, rolling timestamp boundaries",
        "January 31 also qualifies",
        "January 30 is not month end",
        "month end without training data",
        "non-leap February month end",
        "thirtieth calendar date counts",
        "month-end guard must suppress wrong hours"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 8,
              "statesTotal": 8
            },
            "final": {
              "success": true,
              "statesPassed": 8,
              "statesTotal": 8
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 8,
              "statesTotal": 8
            },
            "final": {
              "success": true,
              "statesPassed": 8,
              "statesTotal": 8
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 7,
              "statesTotal": 8
            },
            "final": {
              "success": false,
              "statesPassed": 7,
              "statesTotal": 8
            },
            "firstFailure": "[leap February end, rolling timestamp boundaries] missing 3.5 with hours?|hrs?|h unit"
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 8
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 8
            },
            "firstFailure": "[leap February end, rolling timestamp boundaries] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 8
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 8
            },
            "firstFailure": "[leap February end, rolling timestamp boundaries] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 8
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 8
            },
            "firstFailure": "[leap February end, rolling timestamp boundaries] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 8,
              "statesTotal": 8
            },
            "final": {
              "success": true,
              "statesPassed": 8,
              "statesTotal": 8
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 8,
              "statesTotal": 8
            },
            "final": {
              "success": true,
              "statesPassed": 8,
              "statesTotal": 8
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 8,
              "statesTotal": 8
            },
            "final": {
              "success": true,
              "statesPassed": 8,
              "statesTotal": 8
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-11",
      "request": "Every Sunday at 7pm, count how many books Goodreads says I finished in the past week and email me the total.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "slash dates; past-week windows",
        "none finished this week",
        "one finished"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[slash dates; past-week windows] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[slash dates; past-week windows] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[slash dates; past-week windows] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "[slash dates; past-week windows] expected count 3 or 4, found [3,7]"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "[slash dates; past-week windows] expected count 3 or 4, found [3,7]"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "[slash dates; past-week windows] expected count 3 or 4, found [3,3,7]"
          }
        ]
      }
    },
    {
      "id": "aggregate-12",
      "request": "Every Monday at 8am, count the new GitHub Inbox threads received in the previous week and send me the number as a notification.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "new threads observed during the week; an updated old thread is not new",
        "quiet week",
        "one thread"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "firstFailure": "[new threads observed during the week; an updated old thread is not new] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          }
        ]
      }
    },
    {
      "id": "aggregate-13",
      "request": "Every Friday at 4pm, count how many recipes were saved in Recipe Box that week and email me the total.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "saves observed this week; publication dates irrelevant",
        "nothing saved",
        "one save mid-week"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-14",
      "request": "On the first day of each month at 10am, count the expenses added to Splitwise in the previous month by currency and email me the breakdown.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "previous calendar month by currency",
        "settlements may or may not count as expenses",
        "no expenses last month"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[previous calendar month by currency] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[previous calendar month by currency] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[previous calendar month by currency] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[previous calendar month by currency] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-15",
      "request": "Every Sunday at 6pm, total the quantities consumed from Grocy this week by product and email me each total with its unit.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "observed usage, old backlog and stock balance decoys",
        "fractional quantities are summed",
        "no consumption"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-16",
      "request": "On the first of each month at 8am, count my Goodreads books on each shelf and send me the counts in an email.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "three distinct shelf counts",
        "single shelf, empty groups optional",
        "exclusive and custom shelf readings",
        "empty library"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-17",
      "request": "Every Monday at 7am, total last week’s Strava distance separately for runs and rides and put both kilometer totals in a note.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "per-type previous week kilometer totals",
        "calendar week endpoint choices",
        "public run and ride subtypes",
        "no previous-week activities"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "firstFailure": "[per-type previous week kilometer totals] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "firstFailure": "[per-type previous week kilometer totals] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "firstFailure": "[per-type previous week kilometer totals] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-18",
      "request": "Every weekday at 8am, count my overdue Todoist tasks by priority and send me the counts as a notification.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "unfinished overdue grouped API priorities",
        "second priority distribution",
        "no overdue tasks"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[unfinished overdue grouped API priorities] wrong/missing labeled priority\\s*4|api\\s*4|urgent: 0 expected 2"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-19",
      "request": "At 9pm each Sunday, count the emails I received on each day of the past week and save the daily counts in Notes.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "received only, per-date counts",
        "second daily counts",
        "past-week endpoints and future receipt exclusion",
        "no received emails"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "firstFailure": "[received only, per-date counts] wrong/missing labeled 2027-03-02|2027\\/0?3\\/0?2|0?3\\/0?2(?:\\/2027)?|0?2\\/0?3(?:\\/2027)?|\\bmar[a-z]*\\s+0?2\\b|\\b0?2\\s+mar[a-z]*\\b|\\btue(?:sday)?\\b:  expected 2"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "firstFailure": "[received only, per-date counts] wrong/missing labeled 2027-03-02|2027\\/0?3\\/0?2|0?3\\/0?2(?:\\/2027)?|0?2\\/0?3(?:\\/2027)?|\\bmar[a-z]*\\s+0?2\\b|\\b0?2\\s+mar[a-z]*\\b|\\btue(?:sday)?\\b:  expected 2"
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "firstFailure": "[received only, per-date counts] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "firstFailure": "[received only, per-date counts] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "firstFailure": "[received only, per-date counts] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[no received emails] an empty report contains a nonzero count"
          }
        ]
      }
    },
    {
      "id": "aggregate-20",
      "request": "Every Sunday at 9pm, count my Habits checks and missed periods from the past seven days and append both numbers to today’s Journal entry.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching checks and missed periods",
        "nonmatching old history and successful periods",
        "boundary either seven-date or full prior-day window",
        "empty history"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching checks and missed periods] wrong/missing /miss/: expected 1, got 2"
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching checks and missed periods] wrong/missing /miss/: expected 1, got 2"
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching checks and missed periods] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching checks and missed periods] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching checks and missed periods] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-21",
      "request": "On the first of each month at 8am, count last month’s Journal entries by mood and save the counts in Notes.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching last calendar month by mood",
        "nonmatching current or earlier month",
        "boundary first and last March dates",
        "empty entries"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching last calendar month by mood] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-22",
      "request": "Every Sunday at 4pm, email me the number of dated itinerary items for each Trips plan starting in the next 30 days.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching trips with separate item counts",
        "nonmatching past or day thirty-one",
        "boundary day thirty with zero itinerary items",
        "empty trips"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-23",
      "request": "Every Monday at 8am, total the settlement payments recorded in Shared Expenses over the past seven days by currency, and email me the separate totals without converting them.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching payment-only currency totals",
        "nonmatching purchases and old payments",
        "boundary lower date permits rolling or full calendar dates",
        "empty expenses"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching payment-only currency totals] expected 1 deliveries to com.lattice.email::send-email, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching payment-only currency totals] expected 1 deliveries to com.lattice.email::send-email, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching payment-only currency totals] expected 1 deliveries to com.lattice.email::send-email, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "aggregate-24",
      "request": "Every Sunday at 8am, email me a list of Pantry stock lots that still have some quantity left and reach their best-before date in the next seven days, grouped by product.",
      "family": "aggregate",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching stock lots grouped by product",
        "nonmatching expired, late and undated lots",
        "boundary seventh day and fractional positive amount",
        "empty pantry"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "batch-01",
      "request": "Every evening at 9pm, gather all tasks that were completed in Todoist today and save them into a daily accomplishments note in Notes.",
      "family": "batch",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "live completions today, not old completed snapshots",
        "no new completions, despite completed stored tasks",
        "midnight maintenance discards previous evening buffer without a note",
        "creation and update are not completion",
        "late yesterday is not today"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "batch-02",
      "request": "Every Sunday night at 8pm, count how many new feed items were added to Feed Reader this week and email me a digest of their headlines.",
      "family": "batch",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "new arrivals with old and recent RFC822 publication dates",
        "no arrivals despite stored articles",
        "one digest then cleared window",
        "buffering does not send mail before the scheduled flush",
        "guarded extra flushes must preserve arrivals"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "batch-03",
      "request": "Collect new Feed Reader headlines during the day and email them to me in one digest at 6pm each weekday.",
      "family": "batch",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "today's new headlines; backlog and edits excluded",
        "no new items",
        "two weekdays: one digest each, no repeats"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "batch-04",
      "request": "Gather all new GitHub Inbox threads received each day and send me one email at 5:30pm with their titles and links.",
      "family": "batch",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "today's new threads with titles and links",
        "quiet day",
        "two days: no repeats"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "batch-05",
      "request": "Collect the Strava activities I record during the week and send me a single email every Sunday at 8pm listing their activity types, distances, and elapsed times.",
      "family": "batch",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "week's activities: types, distances and elapsed (not moving) times",
        "no activities",
        "following week only"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[following week only] wrong distance or elapsed time for Walk"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[following week only] wrong distance or elapsed time for Walk"
          }
        ]
      }
    },
    {
      "id": "batch-06",
      "request": "Collect Todoist tasks I delete during the day and email me one list of their titles every evening at 7pm.",
      "family": "batch",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "one list, only deletion events today",
        "separate days with actual scheduled flushes",
        "empty batch"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "batch-07",
      "request": "Gather Grocy stock-consumption events on Tuesdays and Fridays, then at 8pm on each of those days email me one list of the products and amounts used.",
      "family": "batch",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "Tuesday excludes Monday backlog",
        "Friday excludes Thursday and stocks",
        "empty eligible day"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[Tuesday excludes Monday backlog] wrong/missing labeled \\brice\\b: 82.5 expected 2.5"
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "batch-08",
      "request": "Save up Splitwise settlement payments as they’re added and email me one list of their descriptions and amounts at 6pm on the last day of each month.",
      "family": "batch",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "31-day month, only settlements",
        "leap February last day",
        "non-leap February last day",
        "backdated payment, unobserved current-month backlog and update-only decoy",
        "February early flush must preserve the correct last-day stream",
        "populated 30-day month",
        "empty month",
        "not last day stays silent"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "final": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "final": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "final": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "final": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "final": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "final": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "final": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "final": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "final": {
              "success": true,
              "statesPassed": 9,
              "statesTotal": 9
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "batch-09",
      "request": "Collect my Habits streak milestones during the week and email me one list of the habit names and streak lengths every Sunday at 7pm.",
      "family": "batch",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching buffered milestones",
        "nonmatching habit checks",
        "boundary no report before Sunday flush",
        "empty week",
        "boundary next week has no old carryover"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "batch-10",
      "request": "Collect packing checklist items I add to Trips during the week and send me one email every Friday at 6pm listing the new items under each destination.",
      "family": "batch",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching created_at additions with old backlog",
        "nonmatching checked old backlog",
        "boundary checked new item remains an addition",
        "empty packing lists"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[nonmatching checked old backlog] empty summary must say zero/none"
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "enrich-01",
      "request": "When I receive an email in my Personal Email from a new sender, add them to my contacts.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "first message, then same sender again",
        "existing contact",
        "previous personal inbox sender",
        "work instance only"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "enrich-02",
      "request": "When the weather forecast shows rain, check my calendar for outdoor events today and send a warning to my Personal Email.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "rain + park event today",
        "sunny",
        "rain, nothing planned today",
        "rain at other outdoor locations"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[rain + park event today] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[rain + park event today] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[rain + park event today] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[rain + park event today] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "enrich-03",
      "request": "When I save a new recipe in Recipe Box, check what ingredients we already have in Grocy and put any missing items onto my Todoist grocery list.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "missing lentils and carrots, milk already stocked",
        "all ingredients stocked with sufficient quantities",
        "catalog entry without stock is missing",
        "only newly saved recipes",
        "ingredients omitted by event but stored in recipe"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[ingredients omitted by event but stored in recipe] wrong number of grocery item tasks"
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[missing lentils and carrots, milk already stocked] need exactly one shopping item for carrots"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[missing lentils and carrots, milk already stocked] need exactly one shopping item for carrots"
          }
        ]
      }
    },
    {
      "id": "enrich-04",
      "request": "When an email arrives from someone who is saved in my Contacts, save a copy of their message into Notes with their full name.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "known sender and full message",
        "unknown sender",
        "display-name sender syntax"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "enrich-05",
      "request": "When someone opens a new food package in Grocy, if its expiration date is within 5 days, capture a priority task in Todoist to finish it.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "five-day boundary for opened lot",
        "six days away despite other expiring lots",
        "expires today",
        "already expired lot may count as within five days",
        "missing lot"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 5
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 5
            },
            "firstFailure": "refused a feasible request"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "enrich-06",
      "request": "When a new GitHub Inbox thread arrives, look up its repository name in my Notes and add any matching setup instructions to a Todoist task for the thread.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "matching setup note",
        "no matching instructions: thread task or nothing",
        "updates and reads are not new threads"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "enrich-07",
      "request": "When a new email arrives from someone in Contacts, create a Todoist task titled with their name and the email subject.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "known sender",
        "unknown sender",
        "display-name sender syntax",
        "sent mail is not an arrival"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "enrich-08",
      "request": "When an email arrives from someone in Contacts, look up their phone number and create a Tasks item to call them back with that number in the title.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "known sender with phone",
        "another exact address",
        "display address sender",
        "known sender without phone",
        "sent is not received",
        "unknown sender"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "enrich-09",
      "request": "When a Calendar event is updated, look for a Contact whose name appears in its title and email me the event title and that contact’s email address.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "title name match",
        "different name and event",
        "no name match",
        "creation is not update"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "enrich-10",
      "request": "When I consume a Grocy product, find saved Recipe Box recipes that list it as an ingredient and email me up to three recipe titles.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "quantity-prefixed ingredient strings",
        "only one matching recipe",
        "at most three among five eligible recipes",
        "no recipes for consumed product",
        "stock purchase is not consumption"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "enrich-11",
      "request": "When I add a book to Goodreads, look for Notes containing its title and email me the matching note titles.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "book title in note content",
        "book title in note title",
        "all matching notes, not only first",
        "empty related notes",
        "rating is not addition"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 5
            },
            "firstFailure": "[book title in note content] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "enrich-12",
      "request": "When I check off an item on a Trips packing checklist, add a line to that day’s Journal entry saying what I packed and for which trip.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching checked item with trip lookup",
        "nonmatching itinerary addition",
        "boundary quantity and distinct trip",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching checked item with trip lookup] missing trip identity"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching checked item with trip lookup] missing trip identity"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching checked item with trip lookup] missing trip identity"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "enrich-13",
      "request": "When my Exercise habit reaches a 14-day streak, count the workouts I logged during those 14 days and append the count to today’s Journal entry.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching fourteen days with lower-window decoy",
        "nonmatching other habit and week unit",
        "boundary zero workouts at valid milestone",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[matching fourteen days with lower-window decoy] wrong/missing /workout|activit|exercise/: expected 2, got 1"
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching fourteen days with lower-window decoy] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching fourteen days with lower-window decoy] wrong/missing /workout|activit|exercise/: expected 2, got 2,14,0,0,4000,8000,1"
          }
        ]
      }
    },
    {
      "id": "enrich-14",
      "request": "When I add a Journal entry tagged “reading,” look up books I finished in Reading Log that day and append their titles to the same entry.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching books on exact entry date",
        "nonmatching reading-like tag",
        "boundary finished book now rereading",
        "empty matching dated book lookup",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[boundary finished book now rereading] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[boundary finished book now rereading] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[boundary finished book now rereading] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[boundary finished book now rereading] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[boundary finished book now rereading] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[boundary finished book now rereading] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[boundary finished book now rereading] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[boundary finished book now rereading] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          }
        ]
      }
    },
    {
      "id": "enrich-15",
      "request": "When I record a settlement payment in Shared Expenses, check whether its date falls during one of my Trips and, if it does, add the destination and payment amount to that day’s Journal entry.",
      "family": "enrich",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching settlement in trip",
        "nonmatching purchase and outside dates",
        "boundary inclusive trip end",
        "empty trips for real payment",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-01",
      "request": "Every morning at 8 AM, check my contacts for today's birthdays, create a calendar event for each, and send a greeting email from my Personal Email.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "two birthdays with tomorrow decoy",
        "no birthday today",
        "birthday without email still gets calendar event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-02",
      "request": "When I add a contact tagged `client', create a task to send them an introductory email and add a follow-up reminder to my calendar for one week later.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "client marker in contact notes",
        "no client marker",
        "case-insensitive tag list without email"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-03",
      "request": "When I receive an email in my Work Email with `meeting' in the subject, create a calendar event and a preparation task.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "work meeting with explicit date",
        "subject and instance filters",
        "uppercase meeting without date"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-04",
      "request": "If I log a workout on Strava lasting more than 60 minutes, put it on my Calendar and create a Todoist task to do twenty minutes of stretching.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "3601 seconds even with shorter moving time",
        "strict sixty-minute boundary",
        "ride also counts as a workout"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-05",
      "request": "When a new notification thread comes in on GitHub Inbox, show a desktop notification and put a high-priority to-do in Todoist so I don't lose track of it.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "new review thread",
        "updates and reads are not new threads",
        "a mention also creates an urgent task"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-06",
      "request": "Whenever I move a book to currently-reading on Goodreads, block out 30 minutes on my Calendar every weekday evening and send me a desktop reminder.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "weekday evening reading block",
        "finishing or rating is not starting",
        "another newly started book"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 12,
              "statesTotal": 12
            },
            "final": {
              "success": true,
              "statesPassed": 12,
              "statesTotal": 12
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 12,
              "statesTotal": 12
            },
            "final": {
              "success": true,
              "statesPassed": 12,
              "statesTotal": 12
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 12,
              "statesTotal": 12
            },
            "final": {
              "success": true,
              "statesPassed": 12,
              "statesTotal": 12
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-07",
      "request": "When a new calendar entry is scheduled on my Calendar, create a preparation task in Todoist due one day before and show a confirmation notification on my screen.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "dated calendar entry",
        "updated events do not create preparation tasks",
        "year-boundary date arithmetic",
        "recurrence start date when date omitted"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-08",
      "request": "Whenever a new recipe is saved, create a Todoist task with its title and a Calendar event for the same day titled “Try: ” followed by the recipe name.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "saved recipe",
        "edits and removals are not saves",
        "another recipe on another day"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-09",
      "request": "If I mark a Goodreads book as read, create a note with the title and finish date, then email me a copy of that note.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "finished book: note, then email copy",
        "other book events, and an unrelated note, are not emailed",
        "year-end finish date"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-10",
      "request": "When a Grocy stock lot is purchased, create a Tasks reminder with the product and quantity, and also send me a notification with the same details.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "purchased lot: product name by product_id and amount",
        "catalog, consumption and opening are not purchases",
        "fractional amount"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-11",
      "request": "Whenever a Splitwise expense is edited, email me the changed expense details and create a note titled “Updated expense” with the same information.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "edited expense",
        "additions and deletions are not edits",
        "large decimal cost"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-12",
      "request": "When I add a Contact with a birthday, save a note with their name and birthday and add a yearly Calendar event for it.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "birthday contact",
        "another month/day",
        "unknown birthday or existing contact update"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-13",
      "request": "When I clear a Goodreads rating, send me a notification with the book title and create a Todoist task to decide on a new rating.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "zero clears rating",
        "another cleared book",
        "positive rating or unrated addition"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-14",
      "request": "When I remove a Calendar event, save its title in Notes and create a Tasks item called “Check plans for” followed by the title.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "removed event title",
        "another removed title",
        "update/create are not removal"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-15",
      "request": "When my Read habit in Habits reaches a seven-day streak, append a celebration to today’s Journal entry and email me about the milestone.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching Read seven-day milestone",
        "nonmatching habit or milestone",
        "boundary seven weeks is not seven days",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-16",
      "request": "When I create a trip in Trips, add an 8am Calendar event on its departure date titled “Leave for [destination]” and a Tasks item to finish packing due the day before.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching new trip",
        "nonmatching itinerary modification",
        "boundary one-day trip still has both actions",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-17",
      "request": "When I write a Journal entry tagged “gratitude,” complete my Gratitude habit for that day and save a Notes item containing the entry date and mood.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching gratitude",
        "nonmatching substring tag",
        "boundary backdated journal checks that date",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "fanout-18",
      "request": "When I log a ride in Workouts, check off my Cycling habit for that day and append the ride’s distance and time to that day’s Journal entry.",
      "family": "fanout",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching ride",
        "nonmatching run and ride update",
        "boundary backdated recorded ride",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-01",
      "request": "When a task is marked as high priority, send a reminder to my Work Email.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "priority changed to high",
        "low or unspecified priority",
        "created high priority"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-02",
      "request": "When I add a bookmark tagged `read-later', create a task to read it.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "read-later among several tags",
        "substring and absent tag",
        "tag case and whitespace"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-03",
      "request": "When the weather forecast includes rain, send me a notification to bring an umbrella.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "rain forecast",
        "clear or snow",
        "rain casing"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[rain forecast] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[rain forecast] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[rain forecast] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[rain forecast] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[rain forecast] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-04",
      "request": "If anyone enters a household expense in Splitwise that comes out to over $100, send an email to my personal address right away.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "decimal USD group purchase",
        "strict threshold; JPY 9000 is under $100",
        "EUR 900 converts to over $100",
        "household scope is not schema-visible",
        "one cent above threshold without a group",
        "household settlement interpretation is open"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "final": {
              "success": true,
              "statesPassed": 6,
              "statesTotal": 6
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-05",
      "request": "Alert me with a pop-up on my screen only if I log a run on Strava that is longer than 15 km.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "15001 meters",
        "15km boundary and wrong sport",
        "fractional meter over boundary"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-06",
      "request": "Whenever I rate a book 5 stars in Goodreads, create a new note in Notes titled 'Favorites' with the book title and author.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "five stars includes title and author",
        "zero is unrated, not five stars",
        "author omitted by rating event, available in stored edition"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[author omitted by rating event, available in stored edition] missing nia vale"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[author omitted by rating event, available in stored edition] missing nia vale"
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-07",
      "request": "If any new story discovered by Feed Reader contains the phrase 'severe weather warning', pop up an immediate desktop alert.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "phrase in synopsis",
        "exact phrase and new-item trigger",
        "case-insensitive phrase in title"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[phrase in synopsis] missing weather alert"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-08",
      "request": "When I add a new contact with a phone number to Contacts, create a follow-up task in Tasks reminding me to send them an introductory message.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "new contact with phone",
        "phone required and edits filtered",
        "another new contact"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-09",
      "request": "If a new Feed Reader item has “rent increase” in its title or synopsis, email me the headline and original link.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "phrase in title; link is not the opaque guid",
        "phrase in synopsis, different case",
        "separated words, a substring inside another word, and edits",
        "synopsis-only match may be skipped or sent with its link"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-10",
      "request": "If a new Splitwise expense is in euros and costs more than €75, create a high-priority Todoist task to review it.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "EUR 120.00 (string comparison would miss it)",
        "75.00 is not more than 75; other currencies; edits",
        "one cent over",
        "settlement inclusion is open"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-11",
      "request": "When a Grocy stock lot is consumed, notify me only if the amount used is at least 2 units.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "exactly 2 units used",
        "below 2, and other stock events",
        "fractional amount above 2"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-12",
      "request": "If Goodreads reports that I cleared a book rating, create a note with the book title saying I removed its rating.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "rating cleared",
        "set ratings, and a new book that was never rated",
        "another cleared rating"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-13",
      "request": "If I add a book to my Goodreads to-read shelf with a rating of at least 4, email me its title.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "inclusive four stars",
        "five stars and shelf decoy",
        "below threshold or wrong event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-14",
      "request": "If a GitHub Inbox thread changes its reason to a mention, save its title and link in Notes.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "reason mention on update",
        "opaque thread ID and second subject",
        "new mention or type is not changed mention reason"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-15",
      "request": "If I stock at least 6 units of a Grocy product in one new lot, email me the product and amount.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "six inclusive with distinct product/lot ids",
        "fractional above threshold",
        "below threshold and consumption are silent"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-16",
      "request": "If I remove a Calendar event with “dentist” in its title, create a Todoist task to book another appointment.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "dentist removal",
        "dentist within title",
        "other removal or creation"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-17",
      "request": "If I complete a Tasks item whose title starts with “Call,” make a note recording its title and completion date.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "call prefix",
        "completion timestamp differs from delivery day",
        "nonprefix or creation"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-18",
      "request": "When I write a Journal entry tagged “trip idea,” make a Tasks item called “Plan trip idea from [entry date]” due the following week.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching exact tag",
        "nonmatching substring tag",
        "boundary tag alongside another",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-19",
      "request": "If I miss a scheduled Spanish Practice habit in Habits, create a medium-priority Tasks item to practice the next day.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching missed Spanish period",
        "nonmatching other habit",
        "boundary closed weekly partial period",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-20",
      "request": "When I add lodging details to Trips, make a task to confirm check-in only if that trip starts within the next 14 days.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching near-term lodging",
        "nonmatching far trip or activity",
        "boundary day fourteen",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "firstFailure": "[matching near-term lodging] connection 0: no such column: trip_id"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "firstFailure": "[matching near-term lodging] connection 0: no such column: trip_id"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "firstFailure": "[matching near-term lodging] connection 0: no such column: trip_id"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-21",
      "request": "If I add a Journal entry tagged “anxious,” create a Tasks reminder for tomorrow to take a short break.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching anxious tag",
        "nonmatching mood alone or tag substring",
        "boundary other tags and backdated entry",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "filter-22",
      "request": "When a thread added to Code Inbox has “deployment” in its title, create a high-priority Tasks item to read it tomorrow.",
      "family": "filter",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching deployment title",
        "nonmatching body/repository and updates",
        "boundary embedded deployment text",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-01",
      "request": "When I add a new contact, send them a welcome email from my Personal Email.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "contact with email",
        "contact without email",
        "contact edit is not an addition"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-02",
      "request": "When the weather forecast is updated, add today's forecast as a calendar event.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "updated forecast",
        "alert is not a forecast update",
        "zero Celsius forecast"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-03",
      "request": "When I complete a task, create a note logging the completion with a timestamp.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "completion timestamp",
        "creation is not completion",
        "missing optional timestamp"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-04",
      "request": "When I receive an email in my Work Email, send me a desktop notification with the sender and subject.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "work message",
        "other email instance",
        "two distinct work messages"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-05",
      "request": "When I add a calendar event, create a preparation task for it.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "new calendar event",
        "edit is not an addition",
        "title-only recurring event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-06",
      "request": "When I save a new bookmark, create a note with the bookmark's title and URL.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "saved bookmark",
        "removal is not a save"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 2,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-07",
      "request": "Whenever I finish a book on Goodreads, please add a task to Todoist reminding me to write down a quick review.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "finished book with unrated zero",
        "started or rated is not finished",
        "a second finished book"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-08",
      "request": "Send a notification to my computer whenever a new recipe gets saved in Recipe Box.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "new recipe",
        "editing is not saving a new recipe",
        "another recipe"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-09",
      "request": "Whenever Feed Reader finds a new article on one of my subscribed blogs, create a task in Todoist with the article headline so I can read it later.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "headline becomes a Todoist task",
        "updates are not new discoveries",
        "headline-less entry may be skipped or given a placeholder",
        "old publication date still newly received"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-10",
      "request": "When I open an article link in Feed Reader, add a note in Notes containing the story title and link for future reference.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "opened story",
        "discovering is not opening",
        "title/link resolved by local row ID"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[opened story] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[title/link resolved by local row ID] missing ocean report"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[title/link resolved by local row ID] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[title/link resolved by local row ID] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-11",
      "request": "Whenever a brand new product is added to our pantry catalog in Grocy, send a notification to my desktop so I can review it.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "new pantry product",
        "new stock is not a brand new catalog product",
        "different product"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-12",
      "request": "Whenever Feed Reader finds edited content for an existing item, send me an email with the story title and publication date.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "edited item: title and RFC 822 publication date",
        "new and opened items are not edits",
        "another edit with a different date",
        "synopsis-only edit may be skipped or sent without a literal undefined"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-13",
      "request": "When a new stock lot is added in Grocy, create a note with the product name and the quantity that was stocked.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "stock unit amount and product name by product_id",
        "fractional stock amount",
        "catalog, consumption and opening are not new stock"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-14",
      "request": "Whenever I move a book to currently-reading in Goodreads, add a Todoist task to read it, using the book title as the task name.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "book moved to currently-reading",
        "adding, finishing and rating are not starting",
        "title with punctuation, author omitted by the event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-15",
      "request": "When I record an activity in Strava, create a Calendar event titled with the activity type and its local start time.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "ride at local 12:15 although UTC is 20:15",
        "early trail run",
        "edits and deletions are not new recordings"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-16",
      "request": "When I send an email, save a note with its subject and the names of the people I sent it to.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "sent recipient display name",
        "address names and multiple recipients",
        "received mail is not sent"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[address names and multiple recipients] missing Ada Vale"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-17",
      "request": "When I add a book to Goodreads, make a note with its title and the shelf I put it on.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "added to reading list",
        "current shelf not a custom shelf",
        "rating event is not an addition"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-18",
      "request": "Whenever I create a note, add a Todoist task called “Revisit” followed by the note’s title.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "new note",
        "punctuation and another title",
        "updates do not create revisits"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-19",
      "request": "When I create a task in Todoist, copy its title and due date into Tasks so it appears in both places.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "date-only deadline",
        "undated task stays undated",
        "updates are not new tasks"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-20",
      "request": "Whenever I log a walk in Workouts, check off my Walk habit in Habits for that day.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching walk",
        "nonmatching run and edit",
        "boundary backdated walk uses its date",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "forward-21",
      "request": "When I finish a book in Reading Log, append its title and my rating to that day’s Journal entry.",
      "family": "forward",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching finished book",
        "matching sparse finish payload uses the stored rating",
        "nonmatching rating or start",
        "boundary backdated finish with unrated zero",
        "empty: no rows or triggering event"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[matching sparse finish payload uses the stored rating] wrong/missing book rating"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[matching sparse finish payload uses the stored rating] wrong/missing book rating"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 4,
              "statesTotal": 5
            },
            "firstFailure": "[matching sparse finish payload uses the stored rating] wrong/missing book rating"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-01",
      "request": "When my phone battery drops below 15%, text my partner that I might be unreachable.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-02",
      "request": "Whenever a shared expense is added in Splitwise, look up that person's email address in my Contacts and send them a quick confirmation email.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          }
        ]
      }
    },
    {
      "id": "infeasible-03",
      "request": "Whenever I mark a notification thread as read in GitHub Inbox, complete the corresponding task in Todoist.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-04",
      "request": "If an expense in Splitwise gets edited and the cost changes by more than $50, let me know with a desktop notification.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-05",
      "request": "Whenever an expense gets deleted from Splitwise, send an email to everyone involved and show an urgent pop-up notification on my screen.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-06",
      "request": "When a recipe in Recipe Box gets updated with a revised cooking time, update the scheduled dinner entry on my Calendar accordingly.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-07",
      "request": "Whenever a GitHub notification thread is about a review request, check if the person is in my Contacts and, if so, email me the thread link.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          }
        ]
      }
    },
    {
      "id": "infeasible-08",
      "request": "Whenever I finish a run on Strava that's longer than 5 miles, send a text message to Mom letting her know I got back safe.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-09",
      "request": "If Grocy shows that we're completely out of milk or eggs, automatically reorder them on Instacart.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-10",
      "request": "Every time a new bill is posted in Splitwise where I owe money, pay my share immediately from my checking account using Venmo.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-11",
      "request": "Whenever I finish a book on Goodreads and give it 5 stars, post my review and rating to my Twitter profile.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-12",
      "request": "If an incoming email has 'Urgent' in the subject line, turn the living room smart lamp bright red.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-13",
      "request": "When I start cooking a dish in Recipe Box that takes over 45 minutes, play my Cooking Favorites playlist on Spotify.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-14",
      "request": "Whenever a marketing email arrives with an unsubscribe link, unsubscribe me automatically and permanently delete it from my inbox.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-15",
      "request": "Take a picture of my grocery receipts with my phone camera and automatically add all the purchased items into Grocy.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-16",
      "request": "When I save a recipe, post it to my family group chat so everyone can vote on dinner.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-17",
      "request": "If a new Feed Reader story mentions a company in my watchlist, buy $100 of its stock through my brokerage.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-18",
      "request": "When a new email arrives from a client, check their company’s website for their latest phone number and add it to Contacts.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-19",
      "request": "Whenever a contact's birthday is coming up, send them a birthday message on WhatsApp.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-20",
      "request": "Every night at 10pm, check my pantry and automatically add anything below its minimum stock level to an online supermarket cart.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-21",
      "request": "Every month, total what I spent across Splitwise, my credit card, and my bank account, then send me the combined amount.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-22",
      "request": "Every Sunday, tell me how many hours I spent reading my Goodreads books and which one I read the longest.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-23",
      "request": "Every Friday, compare my actual grocery spending from bank transactions with the pantry stock I bought in Grocy and email me any discrepancies.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-24",
      "request": "When a Splitwise expense is added, check my bank balance and tell me whether I can afford my share before emailing me.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-25",
      "request": "When I add a Calendar event with an address, check the live traffic and add enough travel time to the event.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-26",
      "request": "Whenever I rate a book on Goodreads, post the rating and my review to my public book blog.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-27",
      "request": "At 7am each day, print the day's Calendar events and Todoist tasks on my home printer.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-28",
      "request": "Save each new Todoist task to my Calendar with its due time and estimated duration.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          }
        ]
      }
    },
    {
      "id": "infeasible-29",
      "request": "If an email arrives with an attachment, save the attachment into my Notes and label it with the sender's name.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-30",
      "request": "Whenever a task in Todoist is completed, add up the minutes I spent on it and include the total in a weekly report.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-31",
      "request": "If a recipe is edited, tell me which ingredients changed and whether I already have those changed ingredients in Grocy.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated available event cannot supply the missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-32",
      "request": "If I miss a Calendar event, text my sister to tell her I’m running late.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated event cannot supply missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-33",
      "request": "When I finish a ride on Strava, upload its route to Google Maps as a public list.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated event cannot supply missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-34",
      "request": "Every Saturday at 9am, check tomorrow’s weather forecast and email me if I should move my planned run indoors.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated event cannot supply missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-35",
      "request": "If a Splitwise expense includes the word “rent,” transfer my share from my bank account automatically.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated event cannot supply missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-36",
      "request": "When a new Feed Reader podcast item appears, add it to my Spotify listening queue.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated event cannot supply missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-37",
      "request": "Every Friday at 3pm, print my unfinished Todoist tasks on the office printer.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated event cannot supply missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-38",
      "request": "When I save a recipe, upload a copy to my Google Drive dinner folder.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated event cannot supply missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-39",
      "request": "When I finish a Todoist task, mark its matching item in Tasks complete too.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated event cannot supply missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-40",
      "request": "When a Goodreads book gets a rating below 3, move it to my to-read shelf.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated event cannot supply missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-41",
      "request": "If a Splitwise expense is deleted, restore it with its original participants and amounts.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated event cannot supply missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-42",
      "request": "After I open a GitHub Inbox thread’s link, mark that thread read automatically.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated event cannot supply missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-43",
      "request": "Whenever I purchase a new Grocy stock lot, subtract its cost from the matching Splitwise expense.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated event cannot supply missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          }
        ]
      }
    },
    {
      "id": "infeasible-44",
      "request": "When I remove a recipe from Recipe Box, also delete the Todoist task with the same title.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated event cannot supply missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-45",
      "request": "Every Monday at 9am, archive last week’s sent emails so they leave my sent-mail view.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "empty workspace",
        "unrelated event cannot supply missing capability"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 2
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-46",
      "request": "If a flight in Trips is delayed, check live airline availability and rebook me on the earliest alternative flight.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-47",
      "request": "When I write a sad Journal entry, start my comfort playlist on Spotify.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-48",
      "request": "When I reach a 30-day streak in Habits, text my brother the good news.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-49",
      "request": "After I log a ride in Workouts, upload its route to Komoot.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-50",
      "request": "On the day I return from a trip in Trips, set my home thermostat to 21°C at 5pm.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-51",
      "request": "Every Sunday, tell me exactly how many minutes I spent writing each Journal entry that week.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-52",
      "request": "When I attach a PDF ticket to a booking in Trips, extract my seat number and add it to the itinerary.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-53",
      "request": "Whenever I check off my Sleep habit, copy the number of hours I slept from Habits into that day’s Journal entry.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "infeasible-54",
      "request": "Every Friday, convert all my Shared Expenses settlements to dollars using the exchange rate saved with each payment and email me the total.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": "proposed a workflow for an infeasible request"
          }
        ]
      }
    },
    {
      "id": "infeasible-55",
      "request": "Before each trip in Trips, total the weight of its packing checklist and warn me if it exceeds my airline’s baggage limit.",
      "family": "infeasible",
      "feasibility": "infeasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "final": {
              "success": true,
              "statesPassed": 0,
              "statesTotal": 0
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "instance-01",
      "request": "When I receive an email in my Work Email from `[address]' or containing the word `urgent', forward an alert to my Personal Email saying `Check your work inbox'.",
      "family": "instance",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "Alice matches without urgent",
        "neither condition or wrong instance",
        "Urgent in subject or body",
        "whole word urgent, not a substring"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "instance-02",
      "request": "Every evening at 8 PM, count unread emails from both my Work Email and Personal Email, and if the combined total exceeds 20, send a summary breakdown notification.",
      "family": "instance",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "twenty-one unread with per-instance breakdown",
        "exactly twenty is suppressed",
        "empty data",
        "all unread in personal"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[twenty-one unread with per-instance breakdown] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[twenty-one unread with per-instance breakdown] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "multi-source-01",
      "request": "Every Sunday, find contacts I haven't emailed from my Personal Email in 30 days and send me a reminder notification.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "never emailed and stale vs recent and received-only",
        "all recently emailed from personal",
        "empty data",
        "just beyond thirty days"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[never emailed and stale vs recent and received-only] unexpected cara recent in com.lattice.notifications::receive-notification"
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "multi-source-02",
      "request": "Every morning, cross-reference today's calendar events with my contacts to find meetings with people whose birthday is this week, and create a note reminding me to bring a card.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "meetings by names in title/description and calendar-week birthdays",
        "birthday next week or event tomorrow",
        "empty data"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "multi-source-03",
      "request": "Every quarter, find contacts I haven't emailed from my Work Email in 90 days, check whether there is a pending task for each, and for those without one, create a follow-up task and email me the list.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "stale contacts, prior tasks and other-instance decoys",
        "all recent or pending",
        "empty data",
        "ninety-day boundary"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "firstFailure": "[stale contacts, prior tasks and other-instance decoys] wrong total deliveries"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "multi-source-04",
      "request": "Every Friday at 5 PM, generate a weekly review: count completed tasks, count newly saved bookmarks, and include today's weather—then send a formatted digest to my Personal Email.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "weekly counts and latest weather today",
        "empty data",
        "only previous-week data and yesterday weather",
        "weather with empty task/bookmark aggregates"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[weekly counts and latest weather today] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[weekly counts and latest weather today] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[weekly counts and latest weather today] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "multi-source-05",
      "request": "When a contact has a birthday coming up in the next 7 days, look up our past notes in Notes for gift ideas and create a Todoist to-do to buy a present.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "birthday window endpoints and person-specific gift notes",
        "birthday outside window or absent",
        "birthday still deserves a task without old gift ideas"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "multi-source-06",
      "request": "When a calendar event is created, check my Todoist tasks for ones due on the same date and email me the event title alongside those task titles.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "tasks due on the event date",
        "no tasks that day: event-only email or nothing",
        "updates and removals are not creations"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "multi-source-07",
      "request": "Whenever a recipe is saved, check Grocy for its listed ingredients and add a note containing the recipe name and which ingredients are already stocked.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "stocked ingredients by product name",
        "ingredients re-read from the stored recipe",
        "nothing stocked: a none note or nothing",
        "edits and removals are not saves"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "firstFailure": "[stocked ingredients by product name] connection 0: no such table: stock"
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "multi-source-08",
      "request": "When a GitHub Inbox thread arrives, look for the repository name in my Notes and send me a notification with the thread link and any matching note text.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "thread link plus matching note text",
        "no matching note: link only",
        "updates and reads are not arrivals"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "multi-source-09",
      "request": "When an email comes in from someone in Contacts, check Calendar for events with that person's name in the title during the next seven days and email me the sender and any matching event dates.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "matching event within seven days",
        "unknown sender",
        "another contact",
        "contact without upcoming events: sender-only email or nothing"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "multi-source-10",
      "request": "Every Sunday at 5pm, email me next week’s Calendar events that fall on days when I recorded a Strava activity, with the activity type beside each event.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "historical activity dates and weekdays",
        "no same-date match",
        "another match and multiple sport types",
        "next-week calendar endpoints"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "multi-source-11",
      "request": "Every Friday at 4pm, check Grocy for products expiring within two days and Recipe Box for recipes that use them, then make a note of the matching products and recipes.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "interior and day-two expiry matches",
        "expired/today endpoints left open",
        "no matching recipes"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[no matching recipes] an empty report contains a nonzero count"
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "multi-source-12",
      "request": "Every weekday at 7am, email me one list of tasks due today from both Tasks and Todoist, labeling which app each task comes from.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "both apps due today",
        "one app empty",
        "no tasks due today"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[both apps due today] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[both apps due today] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "multi-source-13",
      "request": "Every evening at 8pm, make a note listing today’s new Feed Reader headlines alongside today’s new GitHub Inbox thread titles, under separate headings.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "arrival date differs from source dates",
        "today only, yesterday arrivals excluded",
        "empty daily inboxes"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[arrival date differs from source dates] missing Fresh parser"
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "multi-source-14",
      "request": "Every Friday at 8pm, save a Notes summary showing each day’s Journal mood alongside whether I checked off my Meditation habit that day.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching date join, other habit decoy",
        "nonmatching checks without journal dates",
        "boundary journal entry without any check",
        "empty sources"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching date join, other habit decoy] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching date join, other habit decoy] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[nonmatching checks without journal dates] empty summary must say zero/none"
          }
        ]
      }
    },
    {
      "id": "multi-source-15",
      "request": "Every Sunday at 7pm, append a weekly Journal reflection listing my Workouts activity types and the titles of books I finished in Reading Log that week.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching weekly exercise and finished books",
        "nonmatching old history",
        "boundary one source empty and rereading recorded finish",
        "empty sources"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[boundary one source empty and rereading recorded finish] missing Reread Star"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching weekly exercise and finished books] missing Winter Library"
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching weekly exercise and finished books] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching weekly exercise and finished books] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching weekly exercise and finished books] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[boundary one source empty and rereading recorded finish] missing Reread Star"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[boundary one source empty and rereading recorded finish] missing Reread Star"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[boundary one source empty and rereading recorded finish] missing Reread Star"
          }
        ]
      }
    },
    {
      "id": "multi-source-16",
      "request": "Three days before each Trips departure, save a Notes outline with that trip’s dated itinerary and any Calendar events scheduled during its travel dates.",
      "family": "multi-source",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching itinerary and overlapping calendar",
        "nonmatching departure day four",
        "boundary inclusive calendar travel endpoints",
        "empty trips"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[matching itinerary and overlapping calendar] missing flight Alpha"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[matching itinerary and overlapping calendar] missing flight Alpha"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-01",
      "request": "Every morning at 8 AM, find contacts whose birthday is today and send each a greeting from my Personal Email.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "two birthdays today",
        "no birthdays today",
        "today without an email address"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-02",
      "request": "Every evening at 6 PM, find all overdue tasks and send a digest to my Personal Email.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "overdue and completed/due-today decoys",
        "nothing overdue",
        "empty data"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[overdue and completed/due-today decoys] unexpected finished decoy in com.lattice.email#personal::send-email"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[nothing overdue] unexpected Due today in com.lattice.email#personal::send-email"
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-03",
      "request": "Every morning at 7 AM, find today's calendar events and create a preparation task for each.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "two events today",
        "events on other days",
        "empty data"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-04",
      "request": "Every day at 9 AM, find bookmarks saved in the last 24 hours and email me a digest from my Personal Email.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "rolling twenty-four hours",
        "only old bookmarks",
        "empty data"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[rolling twenty-four hours] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[rolling twenty-four hours] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[rolling twenty-four hours] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-05",
      "request": "Every first of the month, find notes tagged `todo' older than 30 days and send a cleanup reminder notification.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "old todo notes with age and tag decoys",
        "no eligible note",
        "empty data"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-06",
      "request": "Every morning, find notes created yesterday tagged `urgent' and create a task for each.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "yesterday urgent with casing and date decoys",
        "no urgent notes yesterday",
        "empty data"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 3
            },
            "firstFailure": "[yesterday urgent with casing and date decoys] expected 2 deliveries to com.lattice.tasks::add-task, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-07",
      "request": "Every weekday at 8 AM, check the weather forecast and if the temperature is below freezing, send me a notification.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email#work",
          "name": "Email (work)"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        }
      ],
      "oracleStates": [
        "latest below freezing",
        "zero is not below freezing",
        "empty data",
        "latest warm after cold"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[latest below freezing] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[latest below freezing] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[latest below freezing] expected 1 deliveries to com.lattice.notifications::receive-notification, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-08",
      "request": "Every Friday at 5pm, check Grocy for any pantry items expiring in the next 3 days and add them to my Tasks list so we cook them this weekend.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "today and three-day boundary, product-specific units",
        "nothing expiring soon",
        "empty pantry"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[today and three-day boundary, product-specific units] missing milk"
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[today and three-day boundary, product-specific units] missing milk"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[today and three-day boundary, product-specific units] missing milk"
          }
        ]
      }
    },
    {
      "id": "schedule-09",
      "request": "Every weekday at 8:30am, find all high-priority tasks in Tasks that are due today and send me a morning summary email.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "core Tasks due today, not Todoist",
        "no qualifying tasks",
        "another high-priority task"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[core Tasks due today, not Todoist] unexpected completed decoy"
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[core Tasks due today, not Todoist] unexpected completed decoy"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-10",
      "request": "Every weekday at 7:30am, check Goodreads for books on my currently-reading shelf and email me their titles.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "currently-reading shelf only",
        "nothing currently being read",
        "one book on Friday"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-11",
      "request": "On the 15th of each month at noon, check Grocy for products with a stock quantity of zero and create a Tasks item for each one.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "products with no positive stock",
        "everything stocked",
        "empty catalog"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-12",
      "request": "Every Wednesday at 6pm, find my unfinished Todoist tasks due in the next seven days and email me their titles and due dates.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "unfinished tasks due in the next seven days",
        "nothing due soon",
        "another week"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-13",
      "request": "On the first day of each month at 9am, find my GitHub Inbox threads that are review requests and create a Todoist task for each one.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "review requests, not mentions or subject types",
        "no review requests",
        "two unread review requests"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[review requests, not mentions or subject types] expected 1–2 deliveries to org.fixture.todoist::add-task, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[review requests, not mentions or subject types] expected 1–2 deliveries to org.fixture.todoist::add-task, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "final": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 3
            },
            "firstFailure": "[review requests, not mentions or subject types] expected 1–2 deliveries to org.fixture.todoist::add-task, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "final": {
              "success": true,
              "statesPassed": 3,
              "statesTotal": 3
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-14",
      "request": "Every morning at 7am, find Contacts with birthdays today and create a Tasks reminder for each one.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "birthday month/day across years",
        "leap birthday",
        "nobody today"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-15",
      "request": "Every Thursday at 5pm, find Recipe Box recipes whose cooking time is 25 minutes or less and email me their titles and cooking times.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "inclusive duration boundary and seconds",
        "hours form is not minutes",
        "empty quick recipes"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[inclusive duration boundary and seconds] missing Quick rice"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[inclusive duration boundary and seconds] missing Quick rice"
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[inclusive duration boundary and seconds] expected 1 deliveries to com.lattice.email#personal::send-email, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-16",
      "request": "At 6pm each day, find Grocy stock lots expiring tomorrow and make one note listing their products and quantities.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "tomorrow lots, fractional stock units",
        "year-end tomorrow",
        "nothing tomorrow"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[tomorrow lots, fractional stock units] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 3
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 1,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[tomorrow lots, fractional stock units] expected 1 deliveries to com.lattice.notes::add-note, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-17",
      "request": "Every Tuesday at noon, find Feed Reader items published the previous day and save a note with their titles and original links.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "org.fixture.todoist",
          "name": "Todoist"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.email#personal",
          "name": "Email (personal)"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        }
      ],
      "oracleStates": [
        "RFC 822 previous day",
        "publication timezone offset crosses midnight",
        "no yesterday items"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[RFC 822 previous day] expected 1–2 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[RFC 822 previous day] expected 1–2 deliveries to com.lattice.notes::add-note, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[RFC 822 previous day] expected 1–2 deliveries to com.lattice.notes::add-note, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-18",
      "request": "Every night at 9:30, find my Habits scheduled for today that I haven’t checked off and append their names to today’s Journal entry under “Try tomorrow.”",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching due unchecked habits",
        "nonmatching all checked or off weekday",
        "boundary start today versus archive today",
        "empty habits"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching due unchecked habits] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching due unchecked habits] expected 1 deliveries to com.lattice.journal::add-entry, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-19",
      "request": "Every morning at 8, find Trips departing in exactly 10 days and create a Tasks reminder for each one to review its packing checklist, due three days before departure.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching trip ten days ahead with day nine decoy",
        "nonmatching eleven days ahead",
        "boundary departure one-day trip",
        "empty trips"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "firstFailure": "refused a feasible request"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "schedule: expected 0 0 8 * * * (0 0 8 * * *), got none"
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-20",
      "request": "Every Tuesday at 6pm, find the two shortest Recipes with cooking times of 20 minutes or less and make a Tasks item for each to consider for Wednesday dinner.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching two shortest among eligible and decoys",
        "nonmatching too long and unknown",
        "boundary seconds and twenty minutes",
        "empty recipes",
        "fewer than two eligible recipes"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 0,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 5
            },
            "firstFailure": "[matching two shortest among eligible and decoys] expected 2 deliveries to com.lattice.tasks::add-task, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "final": {
              "success": true,
              "statesPassed": 5,
              "statesTotal": 5
            },
            "firstFailure": null
          }
        ]
      }
    },
    {
      "id": "schedule-21",
      "request": "Every Wednesday at 7am, put a 7pm Calendar event titled “Habit: [name]” on my calendar for each Habits routine scheduled for that day.",
      "family": "schedule",
      "feasibility": "feasible",
      "apps": [
        {
          "id": "com.lattice.bookmarks",
          "name": "Bookmarks"
        },
        {
          "id": "com.lattice.calendar",
          "name": "Calendar"
        },
        {
          "id": "com.lattice.codeinbox",
          "name": "Code Inbox"
        },
        {
          "id": "com.lattice.contacts",
          "name": "Contacts"
        },
        {
          "id": "com.lattice.email",
          "name": "Email"
        },
        {
          "id": "com.lattice.expenses",
          "name": "Shared Expenses"
        },
        {
          "id": "com.lattice.feeds",
          "name": "Feed Reader"
        },
        {
          "id": "com.lattice.habits",
          "name": "Habits"
        },
        {
          "id": "com.lattice.journal",
          "name": "Journal"
        },
        {
          "id": "com.lattice.notes",
          "name": "Notes"
        },
        {
          "id": "com.lattice.notifications",
          "name": "Notifications"
        },
        {
          "id": "com.lattice.pantry",
          "name": "Pantry"
        },
        {
          "id": "com.lattice.reading",
          "name": "Reading Log"
        },
        {
          "id": "com.lattice.recipes",
          "name": "Recipes"
        },
        {
          "id": "com.lattice.tasks",
          "name": "Tasks"
        },
        {
          "id": "com.lattice.trips",
          "name": "Trips"
        },
        {
          "id": "com.lattice.weather",
          "name": "Weather"
        },
        {
          "id": "com.lattice.workouts",
          "name": "Workouts"
        }
      ],
      "oracleStates": [
        "matching Wednesday routine and offday decoy",
        "nonmatching archived or future routines",
        "boundary Wednesday-specific routine",
        "empty habits"
      ],
      "results": {
        "lunaFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ],
        "lunaNoTables": [
          {
            "attempt": 0,
            "first": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 2,
              "statesTotal": 4
            },
            "firstFailure": "[matching Wednesday routine and offday decoy] expected 1 deliveries to com.lattice.calendar::add-event, got 0"
          },
          {
            "attempt": 1,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[matching Wednesday routine and offday decoy] expected 1 deliveries to com.lattice.calendar::add-event, got 0"
          },
          {
            "attempt": 2,
            "first": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "final": {
              "success": false,
              "statesPassed": 3,
              "statesTotal": 4
            },
            "firstFailure": "[matching Wednesday routine and offday decoy] expected 1 deliveries to com.lattice.calendar::add-event, got 0"
          }
        ],
        "solFull": [
          {
            "attempt": 0,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 1,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          },
          {
            "attempt": 2,
            "first": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "final": {
              "success": true,
              "statesPassed": 4,
              "statesTotal": 4
            },
            "firstFailure": null
          }
        ]
      }
    }
  ]
}
