* Test: First load * Open new incognito/private window * Load [prod](https://architype.io/) / [dev](https://dev.firestuff.org/architype/) * Verify editor help text appears * Verify default diagram: * Graph label: Example * node1 * group1: {node2, node3} * link1: node1 -> node2 * `n` for node * Verify editor node appears * Verify NOT grid node appears * Name node **1** * Verify grid node appears with label * `␣` to highlight node * Verify editor node highlight background appears * Verify grid node highlight border appears * `i` for link * Verify editor link appears * Verify edit link from set to **1** * Verify NOT grid link appears * Link to **2** * Verify grid node **2** appears with label * Verify grid link appears * Click/touch **2** in visualization * Verify grid node highlight border appears * Verify editor node highlight background appears * `u` to undo back to just help page + initial diagram * Verify undo to each step * Verify NOT undo past initial state * Test: Undo & redo * Open new incognito/private window * Load [hackernews](https://news.ycombinator.com/) * Verify some page load * Load [prod](https://architype.io/#eyJ2ZXJzaW9uIjoxLCJnZW5lcmF0aW9uIjo0NSwibmV4dElkIjoxMDksImVkaXRvciI6W3sidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MyIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NSIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LHsidHlwZSI6ImxpbmsiLCJmcm9tIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTciLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjEifSwidG8iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5OCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LCJpZCI6ImVudHJ5NiIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjpudWxsLCJsYWJlbE9iaiI6bnVsbH0seyJ0eXBlIjoibGluayIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTAiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjIifSwidG8iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTEiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjMifSwiaWQiOiJlbnRyeTkiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6bnVsbCwibGFiZWxPYmoiOm51bGx9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTIiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjQifSx7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTEzIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiI0In0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxNCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiNCJ9LHsidHlwZSI6Imdyb3VwIiwibWVtYmVycyI6W3sidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTgiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjQifSx7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTE5IiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJhIn1dLCJpZCI6ImVudHJ5MTUiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6bnVsbCwibGFiZWxPYmoiOm51bGx9LHsidHlwZSI6ImxpbmsiLCJmcm9tIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTIxIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiIzIn0sInRvIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTIyIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiI0In0sImlkIjoiZW50cnkyMCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjpudWxsLCJsYWJlbE9iaiI6bnVsbH0seyJ0eXBlIjoibGluayIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MjQiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjQifSwidG8iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MjUiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjUifSwiaWQiOiJlbnRyeTIzIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOm51bGwsImxhYmVsT2JqIjpudWxsfSx7InR5cGUiOiJsaW5rIiwiZnJvbSI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkyNyIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoieCJ9LCJ0byI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkyOCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoieSJ9LCJpZCI6ImVudHJ5MjYiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6bnVsbCwibGFiZWxPYmoiOm51bGx9LHsidHlwZSI6ImxpbmsiLCJmcm9tIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTMxIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJ5In0sInRvIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTMwIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJ4In0sImlkIjoiZW50cnkyOSIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjpudWxsLCJsYWJlbE9iaiI6bnVsbH1dLCJzZWxlY3RlZCI6ImVudHJ5MTgifQ==) / [dev](https://dev.firestuff.org/architype/#eyJ2ZXJzaW9uIjoxLCJnZW5lcmF0aW9uIjo0NSwibmV4dElkIjoxMDksImVkaXRvciI6W3sidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MyIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NSIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LHsidHlwZSI6ImxpbmsiLCJmcm9tIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTciLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjEifSwidG8iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5OCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LCJpZCI6ImVudHJ5NiIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjpudWxsLCJsYWJlbE9iaiI6bnVsbH0seyJ0eXBlIjoibGluayIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTAiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjIifSwidG8iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTEiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjMifSwiaWQiOiJlbnRyeTkiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6bnVsbCwibGFiZWxPYmoiOm51bGx9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTIiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjQifSx7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTEzIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiI0In0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxNCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiNCJ9LHsidHlwZSI6Imdyb3VwIiwibWVtYmVycyI6W3sidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTgiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjQifSx7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTE5IiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJhIn1dLCJpZCI6ImVudHJ5MTUiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6bnVsbCwibGFiZWxPYmoiOm51bGx9LHsidHlwZSI6ImxpbmsiLCJmcm9tIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTIxIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiIzIn0sInRvIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTIyIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiI0In0sImlkIjoiZW50cnkyMCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjpudWxsLCJsYWJlbE9iaiI6bnVsbH0seyJ0eXBlIjoibGluayIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MjQiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjQifSwidG8iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MjUiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjUifSwiaWQiOiJlbnRyeTIzIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOm51bGwsImxhYmVsT2JqIjpudWxsfSx7InR5cGUiOiJsaW5rIiwiZnJvbSI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkyNyIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoieCJ9LCJ0byI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkyOCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoieSJ9LCJpZCI6ImVudHJ5MjYiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6bnVsbCwibGFiZWxPYmoiOm51bGx9LHsidHlwZSI6ImxpbmsiLCJmcm9tIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTMxIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJ5In0sInRvIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTMwIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJ4In0sImlkIjoiZW50cnkyOSIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjpudWxsLCJsYWJlbE9iaiI6bnVsbH1dLCJzZWxlY3RlZCI6ImVudHJ5MTgifQ==) in the same tab * Verify grid structure: * 1 -> {2,2,2} -> 3 -> {4,4,4} -> 5 * (4,4,4,a) * x <-> y * `d` repeatedly to delete all editor objects * Verify deletion of all editor objects * Verify deletion of all grid objects * `u` repeatedly to undo all deletion * Verify step-by-step restoration of each individual editor object * Verify step-by-step restoration of each individual grid object * Verify NOT extra `u` after all deletion does navigate back to hackernews * `U` repeatedly to redo all deletion * Verify step-by-step deletion of each individual editor object * Verify step-by-step deletion of each individual grid object * `browser back` repeatedly to undo all deletion * Verify step-by-step restoration of each individual editor object * Verify step-by-step restoration of each individual grid object * Verify extra `browser back` after all deletion does navigate back to hackernews * `browser forward` repeatedly to navigate back to archityep and redo all deletion * Verify nagivate back to architype and correct initial state * Verify step-by-step deletion of each individual editor object * Verify step-by-step deletion of each individual grid object * Test: localStorage * Open new incognito/private window * Load [prod](https://architype.io/#eyJ2ZXJzaW9uIjoxLCJnZW5lcmF0aW9uIjo0NSwibmV4dElkIjoxMDksImVkaXRvciI6W3sidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MyIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NSIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LHsidHlwZSI6ImxpbmsiLCJmcm9tIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTciLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjEifSwidG8iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5OCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LCJpZCI6ImVudHJ5NiIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjpudWxsLCJsYWJlbE9iaiI6bnVsbH0seyJ0eXBlIjoibGluayIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTAiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjIifSwidG8iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTEiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjMifSwiaWQiOiJlbnRyeTkiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6bnVsbCwibGFiZWxPYmoiOm51bGx9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTIiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjQifSx7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTEzIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiI0In0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxNCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiNCJ9LHsidHlwZSI6Imdyb3VwIiwibWVtYmVycyI6W3sidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTgiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjQifSx7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTE5IiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJhIn1dLCJpZCI6ImVudHJ5MTUiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6bnVsbCwibGFiZWxPYmoiOm51bGx9LHsidHlwZSI6ImxpbmsiLCJmcm9tIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTIxIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiIzIn0sInRvIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTIyIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiI0In0sImlkIjoiZW50cnkyMCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjpudWxsLCJsYWJlbE9iaiI6bnVsbH0seyJ0eXBlIjoibGluayIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MjQiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjQifSwidG8iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MjUiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjUifSwiaWQiOiJlbnRyeTIzIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOm51bGwsImxhYmVsT2JqIjpudWxsfSx7InR5cGUiOiJsaW5rIiwiZnJvbSI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkyNyIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoieCJ9LCJ0byI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkyOCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoieSJ9LCJpZCI6ImVudHJ5MjYiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6bnVsbCwibGFiZWxPYmoiOm51bGx9LHsidHlwZSI6ImxpbmsiLCJmcm9tIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTMxIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJ5In0sInRvIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTMwIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJ4In0sImlkIjoiZW50cnkyOSIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjpudWxsLCJsYWJlbE9iaiI6bnVsbH1dLCJzZWxlY3RlZCI6ImVudHJ5MTgifQ==) / [dev](https://dev.firestuff.org/architype/#eyJ2ZXJzaW9uIjoxLCJnZW5lcmF0aW9uIjo0NSwibmV4dElkIjoxMDksImVkaXRvciI6W3sidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MyIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NSIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LHsidHlwZSI6ImxpbmsiLCJmcm9tIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTciLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjEifSwidG8iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5OCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMiJ9LCJpZCI6ImVudHJ5NiIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjpudWxsLCJsYWJlbE9iaiI6bnVsbH0seyJ0eXBlIjoibGluayIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTAiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjIifSwidG8iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTEiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjMifSwiaWQiOiJlbnRyeTkiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6bnVsbCwibGFiZWxPYmoiOm51bGx9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTIiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjQifSx7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTEzIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiI0In0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxNCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiNCJ9LHsidHlwZSI6Imdyb3VwIiwibWVtYmVycyI6W3sidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MTgiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjQifSx7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTE5IiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJhIn1dLCJpZCI6ImVudHJ5MTUiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6bnVsbCwibGFiZWxPYmoiOm51bGx9LHsidHlwZSI6ImxpbmsiLCJmcm9tIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTIxIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiIzIn0sInRvIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTIyIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiI0In0sImlkIjoiZW50cnkyMCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjpudWxsLCJsYWJlbE9iaiI6bnVsbH0seyJ0eXBlIjoibGluayIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MjQiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjQifSwidG8iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MjUiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjUifSwiaWQiOiJlbnRyeTIzIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOm51bGwsImxhYmVsT2JqIjpudWxsfSx7InR5cGUiOiJsaW5rIiwiZnJvbSI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkyNyIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoieCJ9LCJ0byI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkyOCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoieSJ9LCJpZCI6ImVudHJ5MjYiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6bnVsbCwibGFiZWxPYmoiOm51bGx9LHsidHlwZSI6ImxpbmsiLCJmcm9tIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTMxIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJ5In0sInRvIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTMwIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJ4In0sImlkIjoiZW50cnkyOSIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjpudWxsLCJsYWJlbE9iaiI6bnVsbH1dLCJzZWxlY3RlZCI6ImVudHJ5MTgifQ==) * Verify grid structure: * 1 -> {2,2,2} -> 3 -> {4,4,4} -> 5 * (4,4,4,a) * x <-> y * Load [hackernews](https://news.ycombinator.com/) in same tab * Verify some page load * Load [prod](https://architype.org/) / [dev](https://dev.firestuff.org/architype/) in same tab * Verify editor content matches previous * Verify grid content matches previous * Test: Themes * Open new incognito/private window * Load [prod](https://architype.io/#eyJ2ZXJzaW9uIjoxLCJnZW5lcmF0aW9uIjo1OSwibmV4dElkIjo0MCwiZWRpdG9yIjpbeyJ0eXBlIjoibGluayIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NSIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMSJ9LCJ0byI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnk2IiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiIyIn0sImlkIjoiZW50cnk0IiwiaGlnaGxpZ2h0Ijp0cnVlLCJsYWJlbCI6InRlc3QyIiwibGFiZWxPYmoiOnsidHlwZSI6ImxhYmVsIiwiaWQiOiJlbnRyeTM0IiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJ0ZXN0MiJ9fSx7InR5cGUiOiJsaW5rIiwiZnJvbSI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnk5IiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiIyIn0sInRvIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTgiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjEifSwiaWQiOiJlbnRyeTciLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6InRlc3QxIiwibGFiZWxPYmoiOnsidHlwZSI6ImxhYmVsIiwiaWQiOiJlbnRyeTM3IiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJ0ZXN0MSJ9fSx7InR5cGUiOiJncm91cCIsIm1lbWJlcnMiOlt7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTExIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJhIn0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxMiIsImhpZ2hsaWdodCI6dHJ1ZSwibGFiZWwiOiJiIn0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxMyIsImhpZ2hsaWdodCI6dHJ1ZSwibGFiZWwiOiJjIn0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxNCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiZCJ9XSwiaWQiOiJlbnRyeTEwIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJ0ZXN0MyIsImxhYmVsT2JqIjp7InR5cGUiOiJsYWJlbCIsImlkIjoiZW50cnkzOSIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoidGVzdDMifX0seyJ0eXBlIjoiZ3JvdXAiLCJtZW1iZXJzIjpbeyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkyMCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoieCJ9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MjEiLCJoaWdobGlnaHQiOnRydWUsImxhYmVsIjoieSJ9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MjIiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6InoifV0sImlkIjoiZW50cnkxOSIsImhpZ2hsaWdodCI6dHJ1ZSwibGFiZWwiOm51bGwsImxhYmVsT2JqIjpudWxsfSx7InR5cGUiOiJsYWJlbCIsImlkIjoiZW50cnkxOCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoidGVzdDQifV0sInNlbGVjdGVkIjoiZW50cnkyMSJ9) / [dev](https://dev.firestuff.org/architype/#eyJ2ZXJzaW9uIjoxLCJnZW5lcmF0aW9uIjo1OSwibmV4dElkIjo0MCwiZWRpdG9yIjpbeyJ0eXBlIjoibGluayIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NSIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiMSJ9LCJ0byI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnk2IiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiIyIn0sImlkIjoiZW50cnk0IiwiaGlnaGxpZ2h0Ijp0cnVlLCJsYWJlbCI6InRlc3QyIiwibGFiZWxPYmoiOnsidHlwZSI6ImxhYmVsIiwiaWQiOiJlbnRyeTM0IiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJ0ZXN0MiJ9fSx7InR5cGUiOiJsaW5rIiwiZnJvbSI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnk5IiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiIyIn0sInRvIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTgiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6IjEifSwiaWQiOiJlbnRyeTciLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6InRlc3QxIiwibGFiZWxPYmoiOnsidHlwZSI6ImxhYmVsIiwiaWQiOiJlbnRyeTM3IiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJ0ZXN0MSJ9fSx7InR5cGUiOiJncm91cCIsIm1lbWJlcnMiOlt7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTExIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJhIn0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxMiIsImhpZ2hsaWdodCI6dHJ1ZSwibGFiZWwiOiJiIn0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxMyIsImhpZ2hsaWdodCI6dHJ1ZSwibGFiZWwiOiJjIn0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxNCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoiZCJ9XSwiaWQiOiJlbnRyeTEwIiwiaGlnaGxpZ2h0IjpmYWxzZSwibGFiZWwiOiJ0ZXN0MyIsImxhYmVsT2JqIjp7InR5cGUiOiJsYWJlbCIsImlkIjoiZW50cnkzOSIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoidGVzdDMifX0seyJ0eXBlIjoiZ3JvdXAiLCJtZW1iZXJzIjpbeyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkyMCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoieCJ9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MjEiLCJoaWdobGlnaHQiOnRydWUsImxhYmVsIjoieSJ9LHsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MjIiLCJoaWdobGlnaHQiOmZhbHNlLCJsYWJlbCI6InoifV0sImlkIjoiZW50cnkxOSIsImhpZ2hsaWdodCI6dHJ1ZSwibGFiZWwiOm51bGwsImxhYmVsT2JqIjpudWxsfSx7InR5cGUiOiJsYWJlbCIsImlkIjoiZW50cnkxOCIsImhpZ2hsaWdodCI6ZmFsc2UsImxhYmVsIjoidGVzdDQifV0sInNlbGVjdGVkIjoiZW50cnkyMSJ9) * Verify grid structure: * test4 * test1: 2 -> 1 * test2: 1 -> 2 * test3: (a,b,c,d) * (x,y,z) * Highlights: test2, b, c, y, (x,y,z) * `m` to cycle themes * Verify light and dark themes * In each theme: * Verify all editor objects visible * Verify all editor highlights visible * Verify all grid objects visible * Verify all grid highlights visible ## Backward compat * 3bdb240 * Load [prod](https://architype.io/#eyJ2ZXJzaW9uIjoxLCJnZW5lcmF0aW9uIjoxMDQsIm5leHRJZCI6NDY4LCJlZGl0b3IiOlt7InR5cGUiOiJncm91cCIsImlkIjoiZW50cnk0NjEiLCJsYWJlbCI6Imdyb3VwIiwibWVtYmVycyI6W3sidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NDYyIiwibGFiZWwiOiIxIiwiaGlnaGxpZ2h0IjpmYWxzZX1dLCJoaWdobGlnaHQiOmZhbHNlfSx7InR5cGUiOiJsaW5rIiwiaWQiOiJlbnRyeTQ2NSIsImxhYmVsIjoibGluayIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NDY2IiwibGFiZWwiOiIxIiwiaGlnaGxpZ2h0IjpmYWxzZX0sInRvIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTQ2NyIsImxhYmVsIjoiMiIsImhpZ2hsaWdodCI6ZmFsc2V9LCJoaWdobGlnaHQiOmZhbHNlfV0sInNlbGVjdGVkIjoiZW50cnk0NjgifQ==) / [dev](https://dev.firestuff.org/architype/#eyJ2ZXJzaW9uIjoxLCJnZW5lcmF0aW9uIjoxMDQsIm5leHRJZCI6NDY4LCJlZGl0b3IiOlt7InR5cGUiOiJncm91cCIsImlkIjoiZW50cnk0NjEiLCJsYWJlbCI6Imdyb3VwIiwibWVtYmVycyI6W3sidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NDYyIiwibGFiZWwiOiIxIiwiaGlnaGxpZ2h0IjpmYWxzZX1dLCJoaWdobGlnaHQiOmZhbHNlfSx7InR5cGUiOiJsaW5rIiwiaWQiOiJlbnRyeTQ2NSIsImxhYmVsIjoibGluayIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NDY2IiwibGFiZWwiOiIxIiwiaGlnaGxpZ2h0IjpmYWxzZX0sInRvIjp7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTQ2NyIsImxhYmVsIjoiMiIsImhpZ2hsaWdodCI6ZmFsc2V9LCJoaWdobGlnaHQiOmZhbHNlfV0sInNlbGVjdGVkIjoiZW50cnk0NjgifQ==) * Verify group label **group** in editor * Verify group label **group** in diagram * Verify link label **link** in editor * Verify link label **link** in diagram * highlight * Load [prod](https://architype.io/#eyJ2ZXJzaW9uIjoxLCJnZW5lcmF0aW9uIjo1OSwibmV4dElkIjo0MCwiZWRpdG9yIjpbeyJ0eXBlIjoibGluayIsImlkIjoiZW50cnk0IiwibGFiZWwiOiJ0ZXN0MiIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NSIsImxhYmVsIjoiMSIsImhpZ2hsaWdodCI6ZmFsc2V9LCJ0byI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnk2IiwibGFiZWwiOiIyIiwiaGlnaGxpZ2h0IjpmYWxzZX0sImhpZ2hsaWdodCI6dHJ1ZX0seyJ0eXBlIjoibGluayIsImlkIjoiZW50cnk3IiwibGFiZWwiOiJ0ZXN0MSIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5OSIsImxhYmVsIjoiMiIsImhpZ2hsaWdodCI6ZmFsc2V9LCJ0byI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnk4IiwibGFiZWwiOiIxIiwiaGlnaGxpZ2h0IjpmYWxzZX0sImhpZ2hsaWdodCI6ZmFsc2V9LHsidHlwZSI6Imdyb3VwIiwiaWQiOiJlbnRyeTEwIiwibGFiZWwiOiJ0ZXN0MyIsIm1lbWJlcnMiOlt7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTExIiwibGFiZWwiOiJhIiwiaGlnaGxpZ2h0IjpmYWxzZX0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxMiIsImxhYmVsIjoiYiIsImhpZ2hsaWdodCI6dHJ1ZX0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxMyIsImxhYmVsIjoiYyIsImhpZ2hsaWdodCI6dHJ1ZX0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxNCIsImxhYmVsIjoiZCIsImhpZ2hsaWdodCI6ZmFsc2V9XSwiaGlnaGxpZ2h0IjpmYWxzZX0seyJ0eXBlIjoiZ3JvdXAiLCJpZCI6ImVudHJ5MTkiLCJsYWJlbCI6bnVsbCwibWVtYmVycyI6W3sidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MjAiLCJsYWJlbCI6IngiLCJoaWdobGlnaHQiOmZhbHNlfSx7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTIxIiwibGFiZWwiOiJ5IiwiaGlnaGxpZ2h0Ijp0cnVlfSx7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTIyIiwibGFiZWwiOiJ6IiwiaGlnaGxpZ2h0IjpmYWxzZX1dLCJoaWdobGlnaHQiOnRydWV9LHsidHlwZSI6ImxhYmVsIiwiaWQiOiJlbnRyeTE4IiwibGFiZWwiOiJ0ZXN0NCJ9XSwic2VsZWN0ZWQiOiJlbnRyeTIxIn0=) / [dev](https://dev.firestuff.org/architype/#eyJ2ZXJzaW9uIjoxLCJnZW5lcmF0aW9uIjo1OSwibmV4dElkIjo0MCwiZWRpdG9yIjpbeyJ0eXBlIjoibGluayIsImlkIjoiZW50cnk0IiwibGFiZWwiOiJ0ZXN0MiIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5NSIsImxhYmVsIjoiMSIsImhpZ2hsaWdodCI6ZmFsc2V9LCJ0byI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnk2IiwibGFiZWwiOiIyIiwiaGlnaGxpZ2h0IjpmYWxzZX0sImhpZ2hsaWdodCI6dHJ1ZX0seyJ0eXBlIjoibGluayIsImlkIjoiZW50cnk3IiwibGFiZWwiOiJ0ZXN0MSIsImZyb20iOnsidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5OSIsImxhYmVsIjoiMiIsImhpZ2hsaWdodCI6ZmFsc2V9LCJ0byI6eyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnk4IiwibGFiZWwiOiIxIiwiaGlnaGxpZ2h0IjpmYWxzZX0sImhpZ2hsaWdodCI6ZmFsc2V9LHsidHlwZSI6Imdyb3VwIiwiaWQiOiJlbnRyeTEwIiwibGFiZWwiOiJ0ZXN0MyIsIm1lbWJlcnMiOlt7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTExIiwibGFiZWwiOiJhIiwiaGlnaGxpZ2h0IjpmYWxzZX0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxMiIsImxhYmVsIjoiYiIsImhpZ2hsaWdodCI6dHJ1ZX0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxMyIsImxhYmVsIjoiYyIsImhpZ2hsaWdodCI6dHJ1ZX0seyJ0eXBlIjoibm9kZSIsImlkIjoiZW50cnkxNCIsImxhYmVsIjoiZCIsImhpZ2hsaWdodCI6ZmFsc2V9XSwiaGlnaGxpZ2h0IjpmYWxzZX0seyJ0eXBlIjoiZ3JvdXAiLCJpZCI6ImVudHJ5MTkiLCJsYWJlbCI6bnVsbCwibWVtYmVycyI6W3sidHlwZSI6Im5vZGUiLCJpZCI6ImVudHJ5MjAiLCJsYWJlbCI6IngiLCJoaWdobGlnaHQiOmZhbHNlfSx7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTIxIiwibGFiZWwiOiJ5IiwiaGlnaGxpZ2h0Ijp0cnVlfSx7InR5cGUiOiJub2RlIiwiaWQiOiJlbnRyeTIyIiwibGFiZWwiOiJ6IiwiaGlnaGxpZ2h0IjpmYWxzZX1dLCJoaWdobGlnaHQiOnRydWV9LHsidHlwZSI6ImxhYmVsIiwiaWQiOiJlbnRyeTE4IiwibGFiZWwiOiJ0ZXN0NCJ9XSwic2VsZWN0ZWQiOiJlbnRyeTIxIn0=) * Verify highlights: test2, b, c, y, (x,y,z) * Verify NOT highlight test4