meadow 2.0.43 → 2.0.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +2 -3
  2. package/docs/architecture.md +10 -99
  3. package/docs/diagrams/create-waterfall.excalidraw +2016 -0
  4. package/docs/diagrams/create-waterfall.mmd +19 -0
  5. package/docs/diagrams/create-waterfall.svg +2 -0
  6. package/docs/diagrams/crud-behavior-flow.excalidraw +1305 -0
  7. package/docs/diagrams/crud-behavior-flow.mmd +13 -0
  8. package/docs/diagrams/crud-behavior-flow.svg +2 -0
  9. package/docs/diagrams/module-hierarchy.excalidraw +1582 -0
  10. package/docs/diagrams/module-hierarchy.mmd +15 -0
  11. package/docs/diagrams/module-hierarchy.svg +2 -0
  12. package/docs/diagrams/query-lifecycle.excalidraw +1808 -0
  13. package/docs/diagrams/query-lifecycle.mmd +21 -0
  14. package/docs/diagrams/query-lifecycle.svg +2 -0
  15. package/docs/diagrams/schema-system.excalidraw +2034 -0
  16. package/docs/diagrams/schema-system.mmd +21 -0
  17. package/docs/diagrams/schema-system.svg +2 -0
  18. package/docs/providers/README.md +6 -14
  19. package/docs/providers/diagrams/overview.excalidraw +1324 -0
  20. package/docs/providers/diagrams/overview.mmd +8 -0
  21. package/docs/providers/diagrams/overview.svg +2 -0
  22. package/docs/providers/diagrams/use-case-unified-client-server-interface.excalidraw +919 -0
  23. package/docs/providers/diagrams/use-case-unified-client-server-interface.mmd +12 -0
  24. package/docs/providers/diagrams/use-case-unified-client-server-interface.svg +2 -0
  25. package/docs/providers/meadow-endpoints.md +5 -17
  26. package/docs/providers/mongodb.md +2 -2
  27. package/docs/providers/mssql.md +1 -1
  28. package/docs/providers/mysql.md +1 -1
  29. package/docs/providers/postgresql.md +2 -2
  30. package/docs/providers/rocksdb.md +1 -1
  31. package/docs/providers/sqlite.md +1 -1
  32. package/docs/query/README.md +1 -1
  33. package/docs/query/count.md +2 -8
  34. package/docs/query/create.md +2 -12
  35. package/docs/query/diagrams/how-it-works-2.excalidraw +1097 -0
  36. package/docs/query/diagrams/how-it-works-2.mmd +10 -0
  37. package/docs/query/diagrams/how-it-works-2.svg +2 -0
  38. package/docs/query/diagrams/how-it-works-3.excalidraw +665 -0
  39. package/docs/query/diagrams/how-it-works-3.mmd +6 -0
  40. package/docs/query/diagrams/how-it-works-3.svg +2 -0
  41. package/docs/query/diagrams/how-it-works-4.excalidraw +881 -0
  42. package/docs/query/diagrams/how-it-works-4.mmd +8 -0
  43. package/docs/query/diagrams/how-it-works-4.svg +2 -0
  44. package/docs/query/diagrams/how-it-works-5.excalidraw +881 -0
  45. package/docs/query/diagrams/how-it-works-5.mmd +8 -0
  46. package/docs/query/diagrams/how-it-works-5.svg +2 -0
  47. package/docs/query/diagrams/how-it-works.excalidraw +665 -0
  48. package/docs/query/diagrams/how-it-works.mmd +6 -0
  49. package/docs/query/diagrams/how-it-works.svg +2 -0
  50. package/docs/query/read.md +4 -18
  51. package/docs/query/update.md +2 -10
  52. package/docs/query-dsl.md +1 -1
  53. package/docs/quick-start.md +1 -1
  54. package/docs/retold-catalog.json +1 -1
  55. package/docs/retold-keyword-index.json +1 -1
  56. package/docs/schema/README.md +2 -7
  57. package/docs/schema/diagrams/overview.excalidraw +834 -0
  58. package/docs/schema/diagrams/overview.mmd +5 -0
  59. package/docs/schema/diagrams/overview.svg +2 -0
  60. package/package.json +3 -3
  61. package/source/providers/Meadow-Provider-MeadowEndpoints.js +36 -7
  62. package/test/Meadow-Provider-MeadowEndpoints-Session_tests.js +123 -0
@@ -0,0 +1,21 @@
1
+ sequenceDiagram
2
+ participant App as Application
3
+ participant Meadow as Meadow
4
+ participant Behavior as Behavior Module
5
+ participant FH as FoxHound
6
+ participant Provider as Provider
7
+ participant DB as Database
8
+
9
+ App->>Meadow: meadow.query (clone FoxHound)
10
+ Meadow-->>App: Independent query clone
11
+ App->>App: addFilter / addRecord / setCap
12
+ App->>Meadow: meadow.doCreate / doRead / etc.
13
+ Meadow->>Behavior: Invoke behavior (async waterfall)
14
+ Behavior->>FH: setDialect / buildQuery
15
+ FH-->>Behavior: Generated SQL + parameters
16
+ Behavior->>Provider: Provider.Create / Read / etc.
17
+ Provider->>DB: Execute query
18
+ DB-->>Provider: Result rows
19
+ Provider-->>Behavior: Result on query object
20
+ Behavior->>Behavior: Marshal records (source to POJO)
21
+ Behavior-->>App: Callback (pError, pQuery, pRecord)
@@ -0,0 +1,2 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1602 994" width="1602" height="994"><!-- svg-source:excalidraw --><metadata><!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO2dW3fTOlx1MDAxNsff+Vx1MDAxNF45L8xcdTAwMWFcYrpZXHUwMDE33mhpXHUwMDBmPXM4XFx6Zs5cXNZ5cGPReHDj4DiUXHUwMDBli+8+stvEN5lKcUKV1mVcdTAwMDGNfNuW998/aWtL+frI80bZ1Vxcjp57I/llXHUwMDEyxFGYXHUwMDA2l6MneflnmS6iZKY2oeLzXCJZppNiz2mWzZ8/e1x1MDAwNlx1MDAxMVx1MDAxYlx1MDAwM/VcdTAwMDc+J4JBcX2UjOWFnGVcdTAwMGK133/UZ8/7WvyrtkRhfuxCfnpcdTAwMWFHXHUwMDFm5NNcdTAwMTfzeXFEsW1lQ1x1MDAxY81kWfpFXHUwMDE1QU7Wn6/yz4iuP19GYTZVZWBdMpXR+TRTRVx1MDAwMvJ1YTA7j2Vtt0WWJlx1MDAxZuVhXHUwMDEyJ2l+1Z/4XHUwMDBidsxQeeGzYPLxPE2Ws3C9T5ZcdTAwMDazxTxI1b2V+32I4vg0uyrOrupH1d6ocY0/bkyEY7+xZX1cXFx1MDAxOCymsnKguu75dCZcdTAwMTd5XHUwMDE1wnVpMlx1MDAwZiZRVtRcdTAwMDAobyQ3cn5cdTAwMTJcdTAwMTa1/WdpVlx1MDAxYVxcyJO8umfLOK6eeFx1MDAxNt6cuLZhIWXYOHHj4VfLfktmhVx1MDAxYkAqhPB9Ut5YtHipXHUwMDFlf1ac7ENcdTAwMTAvZFmh+aWPKq5RXHUwMDFhu5yHwfUhkHFAXGKilHBSXlW5xMemwXEy+ai5yjyJqp6X/5S/eeXzLz6sf//zye17K3cq93/UOG5cdTAwMTRcdTAwMDeL7DC5uIgydSNvcyNaNZxcdTAwMDVpdlx1MDAxMM3CaHbe3CZnYceW4qhcdTAwMTdpmlxcTmXQepzquO5t8VlyqakhdVx1MDAxZJmralx1MDAxNIBRpdriq/PiWVx1MDAxNztcdTAwMTfF3558V7yv1TWTS1x1MDAxM/1cdTAwMTJWPspBv7vVr7DSL4ZCYEw5XHUwMDFi9LuH+oW99Hsgp8HnSCnDQMGMlm41KHinXG5GyErBglx1MDAxMiCQ+jsoeFx1MDAwZlx1MDAxNYx6Kfj4lVHrXHUwMDE5kFKFg3h3Kl4msFXzmWFcdTAwMDJcdTAwMTCibFDvPqpcdTAwMTf3Uu/bNPlcdTAwMWOF0oi/UDXSXHUwMDA2XHL/oCZ0JdpgoGFcdTAwMWZzn1x1MDAwYlx1MDAwMUvhXHUwMDBmXHUwMDEy3lx1MDAxZlx0k15cdTAwMTJ+eWAkXoqG+JX3o1rPJUpccsTLsZJcdTAwMTljeIhf7aN4/U3FXHUwMDFiTLIk1UefUznJrsXWbETXJMxK/10pXHUwMDE4Uo2G/VLpt0tcdTAwMThcdTAwMWXAY4R7SnhcdTAwMWFMpstUdolcdTAwMTg1yruk/0NcdTAwMTT8de2Qq/rHNyXf2sIuNWogbER8jCFcdTAwMTdcdTAwMWJcdTAwMDW21laV9rXdJ1x1MDAwZc5kXFzzoZpcdTAwMWZl8ks2Wm/41tLbXHUwMDE2X1x1MDAxOaUg6MjE8duW162uOz6sx265X6HA2vVcdGm7fuWB/SDX/z69XFxyfD26qI2HQyggpD6A7rCr8Fx1MDAxZVWjyrXiaFx1MDAxMmT5XHUwMDFklLWSzLLT6H+FOEGt9Di4iOK8av3amV7E0XleXHUwMDAzo4kyutpNUlx1MDAxNZGp08frXHUwMDFkLqIwrL6wJ+qkgWqGpSffe+MnaXRcdTAwMWXNgvj371lcdTAwMWQss+S9XFxcXNtdv9u8ofdq5exwXFxx91KQzEiQnUMpXHUwMDFkMFwisHytdcFcYlx1MDAwZTDaXHUwMDFkjLiwk6pcdTAwMTBcdTAwMDJcdTAwMTHmb9ZHtKBRw49qvnQnQOJcdTAwMTZA6lx1MDAxMkGbSaSitU4miVx1MDAwMUm9kVRtP5k0uoBPfUSVuzuHpKZzuUCjpk1NIDW392SRMGNR97BgXHUwMDA3jahfXHUwMDBmTWpohEBcdTAwMTnJXHUwMDE4aLRtXHUwMDFhqa6OjUqFYFx1MDAwMFx1MDAwYsJL03dcdTAwMDOjliPVnOlOcPTCXHUwMDAyR906aFx1MDAwM0nZZtBJXHUwMDEyqC2CgUh2RFwivlVwnmPKfFx1MDAwNJA7wflcdTAwMTWQVu7lvU7CZfWV6lx1MDAwMpnavt9kU6f5PSF1YFx1MDAwNindyHdcdTAwMDeeXHUwMDA0v1x1MDAxNU9cdTAwMTBp2opcdTAwMDOetoSn6nvPXHUwMDA0T5xcdTAwMTBcdTAwMWZQslFcdTAwMWLSXHUwMDAyT1x1MDAxNVx1MDAxN6q50Z2A6dBcdTAwMDJMOt9vI0lcYlx1MDAxMyTp2mVcdTAwMDOSbFMurZpf+VgxJMKhIadcdTAwMTWSjpMvr/JcdTAwMGK6xaKquzcp1La4J35emuGnO3Wja/hcYrHbx49cdTAwMDZcbu2yk8Stxo98jHxcdTAwMDAx2EilXHUwMDE2XHUwMDE0anlSzZvuhEVHXHUwMDE2LOpcdTAwMTaCZiRcdHGToaRcdTAwMDFJW+glccuhJMxcdTAwMTlcdTAwMDSMuNdNajuYXHUwMDBiTGpb1SRTe4+eZDo2I5MuI6mLST6t63Fg0lx1MDAwZmZcdTAwMTJmdjLlXHUwMDE0YUCqOca7gVLFiWqOdCc4+tlcdTAwMDJHOu/XgMivePpcdTAwMDCiXYJcYjOrXHUwMDAxJKi6/erpUFx1MDAwN+N1L4MsOFx1MDAwYlx1MDAxNo5cdTAwMDXqqlx1MDAwZd9EUNvinlxienWbXHUwMDEyL1x1MDAxNudPQVuBQZ7h15Agr2cwwMpcZoj1oFx1MDAxMdfEy8uKdkF/joNcdTAwMDd1gYdAq5BcdTAwMWMkkFwihiDaaMjI/TTZiqc19m8hzok0WeW2UaNBd3uy7ImBeq8pqpGwXHUwMDA2opyPXHUwMDFi08r88kmuNcz4WJeHUTqSXHUwMDBiMnZcdTAwMWWjXHUwMDA02k0r40x151x1MDAxMPbdy8O4KHJcdTAwMWHGn5YyvfJcdTAwMWVP4mQmvVVcdTAwMTTvL1q2Qlor7c3WLJl3gbV2I02cXHUwMDFhWl5jbJYu7Vx1MDAxMPuLXHRioVx1MDAxMWJcdC2ffl5fXGKXyL1cdTAwMGaIvZMpJ1x1MDAxNozldozlqmdcdTAwMDdhNcv9riW7VcQ+fVx1MDAxMIz9mzFjNVx1MDAxYW4zXHUwMDE2QTamoPJTj9cg2Fx1MDAwZdggXHUwMDA0xkxUfnSd2IG+dlmQlvRcdTAwMTWCXHRcdTAwMWZcdTAwMDHfXHUwMDFkKa/oe6I8da5cdTAwMWNdXcy7XHUwMDA2WcExp7l7q839iPurXHRxkVx1MDAxMXGby5Qh0Y4qkbJW13qsTJ5xQY9726lFVqlhkFx1MDAwM0BcdTAwMDTnzJ1Y01aJW3raXHUwMDA2u1x1MDAxM3Lb/qBr93uE89fGONe8IDQ4J/WwM1x1MDAwNlRcdTAwMTN3RnxAdv9cdTAwMGWz3WxRXGJcdTAwMTjAXHUwMDFjYOZcdTAwMWWygzA8jmKFVu+Zp35/LydJXHUwMDFhqt9cdTAwMTcyO1xm5tsgdyw/ZDvgtqnh/fD9m1x0vrEhvusxaVx1MDAwMnTi3N9cdTAwMGWz4/jmxFxu31xiINXQJnizwVD38f0g+stvjFx1MDAwMauRsCYmzcRcdTAwMTh195cxK8m6XHUwMDE2tGBjv9pfLt9cdTAwMDFcdTAwMDN8N+0vXHUwMDEzu1Q7X/hcdTAwMDRcdOCOkFx1MDAxYsHqMDlMpTq3gleoUFx1MDAxNeRcdTAwMTST2WTsdLfZ2PZ+/H1rwl9ixF9SaX1cdTAwMTX8paVHXGb83Tl/XHUwMDE5topyMYEpXHUwMDEyXHUwMDFj3tOVg1x1MDAxZlx1MDAwNH7fXHUwMDE541ejYM20fJ+N63OtXGJuL3SGIVx1MDAxZFx1MDAwZj3c/iuNYqvmMiZcdTAwMDSoxo2Ds05OZp9V/Xpnq1x0hY+DxdVs4l2q66TqiNjtUWFcdTAwMGLr+4H2vVx0aH0j0LJcbliLOqtob1x1MDAwMO3u49R2M1EgVrplxPfdaVx1MDAxZlx1MDAwZqS1Je2pMWk1XHUwMDEybpNWNb6apK1M91x1MDAxY8aCnZlZI6AgXGZcbnfyJlfUXcjsZVx1MDAxNMRykqlcdTAwMGXh2TKKw3f52KrTrL3V5n6E/d2EsNQslFxmSL0v69+z/GbXk69E5b1mNO+AQ6o4e1+DyVx1MDAwZiP76u/GkNWoWFx1MDAwM9k8mlxcV7Euw5mIsSanY+CqXHUwMDFkV1x1MDAwNbKbkcCAoFx1MDAwMmLfPbL+LFx1MDAxNczyk3qn7371/uqph6ZqRFx1MDAxMXHhNFxcTczux9d/mPCVbdSDpZrc5uokv33Dq+M9WFxmrVx1MDAxYcFcZlx1MDAxMlxu4YZcdTAwMGLOuVx1MDAwZteKozX2v0ds/cOYrVx1MDAxYVx1MDAwNWtWJ1x1MDAwMs3ZQ1SXzDzMXHUwMDFl2sokXFxot4orRPlcdTAwMTJcXNDBZKjVqlxu4/Wg5r5cZsdcdTAwMWFa3o+w/zQhLDfrwWJcXJ8+RDXJzPvcg3VcdTAwMWOxgtt9XHUwMDBms+rBMvXPPUXsg+i+/stcdTAwMTixXHUwMDFhXHRrkqFcYmxcdTAwMGXHUtpOgIKIXGbDsVvov3KrgFx1MDAxM+GIXG7s4Gjs0Vx1MDAxNzlZKj59cj5cdTAwMWHcYWk/gv7bhKDCjKC0oqFieSX/fuUzuVx1MDAxZVx1MDAwM65ez6jZiylcdTAwMTM+vq/jrFx1MDAwZiNcdTAwMDZcdTAwMWNcdTAwMThDVKNiXHUwMDFkRFx1MDAxMWtcdTAwMDSBmebLXHUwMDFiIfCHIPBcdTAwMTZW0lx1MDAwNZajNoCrVi9ycLUoRaBlnHnKmd2O+mrt7IfQM6MlLFxml4nCuFx1MDAxZejlsJ2qtM+BXtdcdTAwMTlqOylcdTAwMDdcdTAwMTHoi3vbXHJ9+iBCvVx1MDAxM/NFLIxWilx1MDAxMlx1MDAwNI1cdTAwMWKLX3NNslx1MDAxMoRjTVt4QOhO596oNi9BXHUwMDA0XHUwMDAx4E5cdTAwMWF/XHUwMDAzocnsZtWH5Oy/cpLtXHUwMDAzTTtN7lx1MDAwN9bQXGKsZotDscp3XHUwMDE1XHUwMDE3XFyl7fykYamKnWFcdTAwMTXZrSjDsOA+XHUwMDE2zFx1MDAxZJFcdTAwMGUrVbjFbGnObKOVpzisR445XHUwMDA3mqUqMGBcdTAwMDOzt/DFz9DyO8048pmP3HlcdTAwMWKsv2QzSFx1MDAxN9Mg9tJirYeF93iRLNOJ9LLEe/vmlzdbmcmzo9UqzE3vXHUwMDA38Vx1MDAwZkZcdTAwMTA3W2+K+fVcdTAwMDUrhCbJeOhcdTAwMWPvjuLV4TRcdTAwMDPdqpY2XHUwMDE0XHUwMDAwgaFzvMegPTdcdTAwMDet0ZpQuJVcYiU0ScZcdTAwMTjRIVx1MDAxMao/aGmll2NcdTAwMTLNwpRh7Ds4e+cwiOP8+XmP50fKo9Mn3ryYXG6j/r9eZ8ntSbM25vfD7fRGro9u3j6jYD4/zdTjWL/plYdFYeNrXHUwMDFjrssyOS/rpih6nYTyaFx1MDAxNpzFzUcz+lx1MDAxY8nLg7agfjo+OGZHRzd3c/NUXy/jLDqV+Twm5WxcdTAwMDVzcvuKV0quNnlT9O3/M/fh7yJ9<!-- payload-end --><pict-renderer-graph:source xmlns:pict-renderer-graph="https://fable-retold.github.io/pict-renderer-graph/ns/v1"><![CDATA[{"type":"seqgraph","mermaid":"sequenceDiagram\n\tparticipant App as Application\n\tparticipant Meadow as Meadow\n\tparticipant Behavior as Behavior Module\n\tparticipant FH as FoxHound\n\tparticipant Provider as Provider\n\tparticipant DB as Database\n\n\tApp->>Meadow: meadow.query (clone FoxHound)\n\tMeadow-->>App: Independent query clone\n\tApp->>App: addFilter / addRecord / setCap\n\tApp->>Meadow: meadow.doCreate / doRead / etc.\n\tMeadow->>Behavior: Invoke behavior (async waterfall)\n\tBehavior->>FH: setDialect / buildQuery\n\tFH-->>Behavior: Generated SQL + parameters\n\tBehavior->>Provider: Provider.Create / Read / etc.\n\tProvider->>DB: Execute query\n\tDB-->>Provider: Result rows\n\tProvider-->>Behavior: Result on query object\n\tBehavior->>Behavior: Marshal records (source to POJO)\n\tBehavior-->>App: Callback (pError, pQuery, pRecord)\n","style":"notebook"}]]></pict-renderer-graph:source></metadata><defs><style class="style-fonts">
2
+ @font-face { font-family: Excalifont; src: url(data:font/woff2;base64,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); }</style></defs><g stroke-linecap="round"><g transform="translate(90 66) rotate(0 -0.18021412796761638 459)"><path d="M0 0 C-0.09 183.37, -0.77 367.35, 0 918" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="2" fill="none" stroke-dasharray="8 9.5"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(378 66) rotate(0 -0.7876488134061219 459)"><path d="M0 0 C-2.17 184.84, -2.03 368.37, 0 918" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="2" fill="none" stroke-dasharray="8 9.5"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(666 66) rotate(0 0.44288324380590893 459)"><path d="M0 0 C0.96 183.73, 1.38 369.77, 0 918" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="2" fill="none" stroke-dasharray="8 9.5"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(954 66) rotate(0 -0.33024386144847995 459)"><path d="M0 0 C-0.58 187.02, -1.13 373.1, 0 918" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="2" fill="none" stroke-dasharray="8 9.5"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1242 66) rotate(0 0.3210583908086164 459)"><path d="M0 0 C0.97 184.1, 0.74 368.73, 0 918" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="2" fill="none" stroke-dasharray="8 9.5"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1530 66) rotate(0 -0.16269497602445426 459)"><path d="M0 0 C-0.08 184.84, -0.69 368.44, 0 918" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="2" fill="none" stroke-dasharray="8 9.5"/></g></g><mask/><g stroke-linecap="round" transform="translate(10 10) rotate(0 80 28)"><path d="M14 0 C41.42 1.41, 67.12 2.24, 146 0 M14 0 C66.75 -1.91, 119.87 -1.82, 146 0 M146 0 C155.43 -0.93, 161.75 2.83, 160 14 M146 0 C154.04 2.08, 158.66 3.25, 160 14 M160 14 C161.79 21.84, 159.29 33.74, 160 42 M160 14 C160.03 21.68, 160.66 26.62, 160 42 M160 42 C161.95 51.66, 156.25 56.95, 146 56 M160 42 C161.73 51.67, 154.29 54.29, 146 56 M146 56 C103.81 56.75, 59.7 57.34, 14 56 M146 56 C99.14 57.6, 51.73 56.55, 14 56 M14 56 C4.12 55.32, 0.46 50.05, 0 42 M14 56 C2.56 56.64, -1.69 49.99, 0 42 M0 42 C2.06 33.37, -0.13 23.52, 0 14 M0 42 C0.25 30.45, 0.35 20.64, 0 14 M0 14 C-1.92 5.87, 3.58 1.73, 14 0 M0 14 C-1.57 3.26, 2.75 0.71, 14 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(18 25.5) rotate(0 72 12.5)"><text x="72" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Application</text></g><g stroke-linecap="round" transform="translate(323 10) rotate(0 55 28)"><path d="M14 0 C28.84 1.16, 46.96 -0.27, 96 0 M14 0 C39.9 0.75, 64.72 0.25, 96 0 M96 0 C104.92 0.16, 111.5 4.82, 110 14 M96 0 C106.27 -0.81, 112.26 3.57, 110 14 M110 14 C108.69 20.41, 108.42 30.11, 110 42 M110 14 C109.51 19.75, 109.03 25.4, 110 42 M110 42 C109.44 53.03, 105.06 56.67, 96 56 M110 42 C112.17 50.12, 104.33 57.4, 96 56 M96 56 C77.42 54.25, 57.49 56.53, 14 56 M96 56 C65.47 54.96, 35.08 55.34, 14 56 M14 56 C4.05 56.43, 0.53 50.1, 0 42 M14 56 C5 56.34, 0.69 52.47, 0 42 M0 42 C0.55 33.13, -0.15 21.23, 0 14 M0 42 C0.78 34.8, 0.34 27.37, 0 14 M0 14 C0.58 3.48, 4.51 -1.86, 14 0 M0 14 C-1.51 5.04, 4.44 0.63, 14 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(331 25.5) rotate(0 47 12.5)"><text x="47" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Meadow</text></g><g stroke-linecap="round" transform="translate(562 10) rotate(0 104 28)"><path d="M14 0 C50.71 0.99, 85.88 -0.73, 194 0 M14 0 C53.24 -0.73, 91.34 -0.88, 194 0 M194 0 C203.64 -0.27, 206.14 5.88, 208 14 M194 0 C201.35 1.25, 205.91 2.43, 208 14 M208 14 C208.36 22.71, 210.04 33.71, 208 42 M208 14 C207.19 21.93, 208.7 28.51, 208 42 M208 42 C209.7 51.19, 202.61 56.73, 194 56 M208 42 C206.39 52.19, 204.06 55, 194 56 M194 56 C140.99 55.55, 84.92 56.8, 14 56 M194 56 C128.61 55.81, 62.63 55.77, 14 56 M14 56 C5.92 57.78, 0.39 50.35, 0 42 M14 56 C5.94 57.23, -1.51 53.53, 0 42 M0 42 C1.35 33.41, -1.08 23.46, 0 14 M0 42 C0.61 36.79, 0.48 29.22, 0 14 M0 14 C1.47 5.06, 5.83 -0.47, 14 0 M0 14 C-0.41 4.85, 3.87 -0.97, 14 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(570 25.5) rotate(0 96 12.5)"><text x="96" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Behavior Module</text></g><g stroke-linecap="round" transform="translate(892 10) rotate(0 62 28)"><path d="M14 0 C31.88 -0.85, 53.17 1.42, 110 0 M14 0 C36.05 -0.79, 55.95 -0.89, 110 0 M110 0 C120.25 -0.39, 122.75 3.13, 124 14 M110 0 C118.38 -0.34, 123.01 3.61, 124 14 M124 14 C125.15 22.2, 125.09 32.39, 124 42 M124 14 C123.4 25.19, 123.3 35.29, 124 42 M124 42 C124.31 50.41, 118.27 55.71, 110 56 M124 42 C123.97 51.89, 117.31 57.45, 110 56 M110 56 C90.06 57.92, 69.69 57.84, 14 56 M110 56 C87.46 56.08, 63.88 56.3, 14 56 M14 56 C4.39 54.81, 0.26 50.64, 0 42 M14 56 C4.25 54.92, -1.66 49.11, 0 42 M0 42 C-0.45 34.47, -0.03 27.58, 0 14 M0 42 C-0.86 33.82, -0.96 26.65, 0 14 M0 14 C1.7 5.98, 4.78 -1.11, 14 0 M0 14 C-1.8 4.91, 3.8 1.61, 14 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(900 25.5) rotate(0 54 12.5)"><text x="54" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">FoxHound</text></g><g stroke-linecap="round" transform="translate(1180 10) rotate(0 62 28)"><path d="M14 0 C33.18 -0.79, 53.74 -0.14, 110 0 M14 0 C43.57 0.99, 74.15 -0.19, 110 0 M110 0 C118.13 0.66, 122.27 5.96, 124 14 M110 0 C119.1 0.81, 125.19 2.63, 124 14 M124 14 C125.32 21.61, 124.99 30.84, 124 42 M124 14 C123.21 23.63, 124.71 31.23, 124 42 M124 42 C124.75 52.04, 118.1 57.69, 110 56 M124 42 C123.54 49.6, 117.8 57.93, 110 56 M110 56 C89.3 56.28, 71.14 54.18, 14 56 M110 56 C83.95 55.54, 56.63 54.88, 14 56 M14 56 C5.54 56.58, -1.24 51.24, 0 42 M14 56 C4.72 56.67, -1.4 52.01, 0 42 M0 42 C-1.49 33.02, -0.52 23.79, 0 14 M0 42 C-0.38 33.93, 0.48 27.17, 0 14 M0 14 C-0.58 4.94, 4.18 1.68, 14 0 M0 14 C-1.86 2.97, 4.11 -1.85, 14 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(1188 25.5) rotate(0 54 12.5)"><text x="54" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Provider</text></g><g stroke-linecap="round" transform="translate(1468 10) rotate(0 62 28)"><path d="M14 0 C33.69 1.19, 54.5 0.12, 110 0 M14 0 C40.65 -0.53, 64.94 -0.49, 110 0 M110 0 C117.54 0.98, 124.47 6.57, 124 14 M110 0 C118.15 1.73, 125.79 4.8, 124 14 M124 14 C123.63 24.88, 123.02 35.91, 124 42 M124 14 C123.71 21.46, 123.51 29.39, 124 42 M124 42 C125.85 52.28, 119.34 55.19, 110 56 M124 42 C125.96 49.65, 119.3 54.72, 110 56 M110 56 C83.74 58.67, 55.21 58.34, 14 56 M110 56 C75.69 56.67, 42.96 56.28, 14 56 M14 56 C5.21 57.91, -0.08 51.73, 0 42 M14 56 C5.28 56.29, 0.1 53.02, 0 42 M0 42 C-0.91 35.44, 0.08 27.87, 0 14 M0 42 C0.02 33.45, 0.09 23.51, 0 14 M0 14 C1.9 5.33, 3.3 -1.76, 14 0 M0 14 C-0.94 5.62, 6.32 1.15, 14 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(1476 25.5) rotate(0 54 12.5)"><text x="54" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Database</text></g><g stroke-linecap="round"><g transform="translate(93 119) rotate(0 140.4590061571682 -0.9189003353286438)"><path d="M0.59 -0.48 C47.7 -0.47, 234.45 -1.05, 281.47 -1.04 M-0.55 -1.78 C46.45 -1.56, 233.1 -0.45, 280.25 -0.05" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(93 119) rotate(0 140.4590061571682 -0.9189003353286438)"><path d="M278.9 0.26 L267.23 5.76 L268.29 -7.1 L282.09 -0.35" stroke="none" stroke-width="0" fill="var(--diagram-ink, #1B1F23)" fill-rule="evenodd"/><path d="M280.25 -0.05 C276.83 0.61, 273.38 3.45, 266.61 6.19 M280.25 -0.05 C276.58 2.24, 273.86 3.8, 266.61 6.19 M266.61 6.19 C266.94 3.46, 266.07 -0.93, 266.7 -6.49 M266.61 6.19 C267.36 3.17, 267.15 0.32, 266.7 -6.49 M266.7 -6.49 C270.52 -4.54, 277.18 -1.16, 280.25 -0.05 M266.7 -6.49 C270.66 -4.33, 273.88 -2.98, 280.25 -0.05 M280.25 -0.05 C280.25 -0.05, 280.25 -0.05, 280.25 -0.05 M280.25 -0.05 C280.25 -0.05, 280.25 -0.05, 280.25 -0.05" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g></g><mask/><g transform="translate(94.80000000000001 92) rotate(0 139.2 10.5)"><text x="139.2" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">meadow.query (clone FoxHound)</text></g><g stroke-linecap="round"><g transform="translate(375 177) rotate(0 -141.063463832438 -1.0626556143164692)"><path d="M-0.53 -1.14 C-47.27 -1.12, -234.53 -1.09, -281.6 -0.98" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(375 177) rotate(0 -141.063463832438 -1.0626556143164692)"><path d="M-280.63 -1.15 L-266.33 -8.21 L-267.91 6.09 L-280.37 -2.62" stroke="none" stroke-width="0" fill="var(--diagram-ink, #1B1F23)" fill-rule="evenodd"/><path d="M-281.6 -0.98 C-280.2 -1.71, -277.23 -4.64, -268.01 -7.34 M-268.01 -7.34 C-267.57 -3.58, -268.4 -1.34, -267.99 5.34 M-267.99 5.34 C-272.86 1.97, -278.19 0.77, -281.6 -0.98 M-281.6 -0.98 C-281.6 -0.98, -281.6 -0.98, -281.6 -0.98" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2.5" fill="none"/></g></g><mask/><g transform="translate(123.60000000000002 150) rotate(0 110.39999999999998 10.5)"><text x="110.39999999999999" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Independent query clone</text></g><g stroke-linecap="round"><g transform="translate(90 235) rotate(0 25.936236028339778 22.13903092980547)"><path d="M0.51 0.41 C8.21 0.42, 38.09 -7.72, 45.64 -0.43 C53.18 6.86, 53.36 36.66, 45.78 44.14 C38.19 51.61, 7.73 44.48, 0.11 44.42 M0.11 0.14 C8.02 0.25, 39.15 -7.4, 46.69 0.04 C54.22 7.49, 53.05 37.57, 45.31 44.81 C37.58 52.05, 7.92 43.64, 0.28 43.47" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(90 235) rotate(0 25.936236028339778 22.13903092980547)"><path d="M0.76 43 L15.65 39.26 L12.54 52.6 L0.75 43.23" stroke="none" stroke-width="0" fill="var(--diagram-ink, #1B1F23)" fill-rule="evenodd"/><path d="M0.28 43.47 C3.76 42.05, 5.52 41.37, 14.66 39.2 M0.28 43.47 C5.02 41.85, 9.71 40.65, 14.66 39.2 M14.66 39.2 C14.06 42.68, 13.8 47.22, 12.8 51.74 M14.66 39.2 C13.93 43.45, 13.46 47.19, 12.8 51.74 M12.8 51.74 C9.1 49.88, 6.48 47.39, 0.28 43.47 M12.8 51.74 C8.36 49.01, 4.03 46.25, 0.28 43.47 M0.28 43.47 C0.28 43.47, 0.28 43.47, 0.28 43.47 M0.28 43.47 C0.28 43.47, 0.28 43.47, 0.28 43.47" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g></g><mask/><g transform="translate(146 246.5) rotate(0 144 10.5)"><text x="0" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">addFilter / addRecord / setCap</text></g><g stroke-linecap="round"><g transform="translate(93 345) rotate(0 140.1645028208429 0.880436417573037)"><path d="M0.05 0.92 C47.19 0.82, 234.75 0.1, 281.71 0.08 M-1.38 0.35 C45.68 0.42, 233.55 1.91, 280.61 1.65" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(93 345) rotate(0 140.1645028208429 0.880436417573037)"><path d="M282.43 0.86 L268.5 7.34 L268.7 -5.39 L282.13 2.75" stroke="none" stroke-width="0" fill="var(--diagram-ink, #1B1F23)" fill-rule="evenodd"/><path d="M280.61 1.65 C279.02 2.59, 275.19 4.02, 267 7.96 M280.61 1.65 C276.15 3.37, 271.04 5.77, 267 7.96 M267 7.96 C266.67 4.65, 268.19 0.5, 267.03 -4.71 M267 7.96 C266.62 3.36, 267.4 -0.13, 267.03 -4.71 M267.03 -4.71 C271.09 -2.58, 276.06 0.27, 280.61 1.65 M267.03 -4.71 C270.95 -3.39, 275.29 -0.56, 280.61 1.65 M280.61 1.65 C280.61 1.65, 280.61 1.65, 280.61 1.65 M280.61 1.65 C280.61 1.65, 280.61 1.65, 280.61 1.65" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g></g><mask/><g transform="translate(85.20000000000002 318) rotate(0 148.79999999999995 10.5)"><text x="148.79999999999998" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">meadow.doCreate / doRead / etc.</text></g><g stroke-linecap="round"><g transform="translate(381 403) rotate(0 141.45340118123218 0.1291744003518147)"><path d="M0.66 0.22 C47.7 0.45, 234.17 0.87, 281.12 0.97 M-0.46 -0.7 C47.06 -0.76, 236.32 -0.58, 283.36 -0.64" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(381 403) rotate(0 141.45340118123218 0.1291744003518147)"><path d="M283.81 -0.84 L270.71 6.99 L268.95 -8.22 L282.19 0.15" stroke="none" stroke-width="0" fill="var(--diagram-ink, #1B1F23)" fill-rule="evenodd"/><path d="M283.36 -0.64 C280.86 -0.38, 279.03 2.47, 269.77 5.7 M283.36 -0.64 C278.15 1.23, 273.76 4.29, 269.77 5.7 M269.77 5.7 C270.34 0.37, 270.88 -2.5, 269.77 -6.98 M269.77 5.7 C269.35 1.63, 270.39 -0.96, 269.77 -6.98 M269.77 -6.98 C274.52 -5.53, 280.87 -1.02, 283.36 -0.64 M269.77 -6.98 C274.59 -4.9, 280.03 -2.08, 283.36 -0.64 M283.36 -0.64 C283.36 -0.64, 283.36 -0.64, 283.36 -0.64 M283.36 -0.64 C283.36 -0.64, 283.36 -0.64, 283.36 -0.64" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g></g><mask/><g transform="translate(363.6 376) rotate(0 158.40000000000003 10.5)"><text x="158.4" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Invoke behavior (async waterfall)</text></g><g stroke-linecap="round"><g transform="translate(669 461) rotate(0 140.3795183248725 -0.48033242302454937)"><path d="M0.35 -0.14 C47.49 0.06, 234.73 0.49, 281.69 0.55 M-0.93 -1.25 C46.13 -1.36, 233.53 -1.76, 280.58 -1.28" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(669 461) rotate(0 140.3795183248725 -0.48033242302454937)"><path d="M278.62 -2.26 L267.84 5.6 L265.77 -7.76 L280.63 -0.7" stroke="none" stroke-width="0" fill="var(--diagram-ink, #1B1F23)" fill-rule="evenodd"/><path d="M280.58 -1.28 C277.62 -0.36, 275.73 1.41, 266.97 5.02 M280.58 -1.28 C275.65 1.07, 271.44 2.19, 266.97 5.02 M266.97 5.02 C267.75 1.85, 267.39 -0.41, 267.01 -7.66 M266.97 5.02 C267.39 2.75, 266.85 -0.04, 267.01 -7.66 M267.01 -7.66 C270.36 -6.78, 277.16 -2.41, 280.58 -1.28 M267.01 -7.66 C269.84 -5.54, 273.42 -5.2, 280.58 -1.28 M280.58 -1.28 C280.58 -1.28, 280.58 -1.28, 280.58 -1.28 M280.58 -1.28 C280.58 -1.28, 280.58 -1.28, 280.58 -1.28" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g></g><mask/><g transform="translate(699.6 434) rotate(0 110.39999999999998 10.5)"><text x="110.39999999999999" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">setDialect / buildQuery</text></g><g stroke-linecap="round"><g transform="translate(951 519) rotate(0 -140.6907022040337 0.9794663859537422)"><path d="M0.78 0.92 C-46.06 1.15, -234.96 1.05, -282.16 0.9" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(951 519) rotate(0 -140.6907022040337 0.9794663859537422)"><path d="M-281.09 1.9 L-267.72 -4.72 L-269.25 9.11 L-282.31 0.45" stroke="none" stroke-width="0" fill="var(--diagram-ink, #1B1F23)" fill-rule="evenodd"/><path d="M-282.16 0.9 C-278.2 -0.67, -275.45 -2.3, -268.55 -5.41 M-268.55 -5.41 C-267.8 -1.97, -268.98 1.86, -268.57 7.26 M-268.57 7.26 C-274.29 4.44, -277.15 2.02, -282.16 0.9 M-282.16 0.9 C-282.16 0.9, -282.16 0.9, -282.16 0.9" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2.5" fill="none"/></g></g><mask/><g transform="translate(685.2 492) rotate(0 124.79999999999995 10.5)"><text x="124.8" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Generated SQL + parameters</text></g><g stroke-linecap="round"><g transform="translate(669 577) rotate(0 285.1334535327042 -0.335760177844179)"><path d="M-1.15 0.54 C93.9 0.48, 473.8 0.56, 569.15 0.57 M0.44 -0.23 C95.98 -0.71, 476.38 -1.05, 571.42 -1.25" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(669 577) rotate(0 285.1334535327042 -0.335760177844179)"><path d="M571.59 -2.91 L559.59 4.27 L556.28 -6.83 L572.44 -0.08" stroke="none" stroke-width="0" fill="var(--diagram-ink, #1B1F23)" fill-rule="evenodd"/><path d="M571.42 -1.25 C569.4 -1.16, 566.71 2.36, 557.83 5.11 M571.42 -1.25 C567.38 1.28, 562.53 2.72, 557.83 5.11 M557.83 5.11 C557.91 1.66, 557.89 -3.05, 557.82 -7.57 M557.83 5.11 C557.21 0.05, 558.15 -4.35, 557.82 -7.57 M557.82 -7.57 C562.11 -6.56, 562.98 -3.81, 571.42 -1.25 M557.82 -7.57 C561.82 -6.15, 567.35 -3.76, 571.42 -1.25 M571.42 -1.25 C571.42 -1.25, 571.42 -1.25, 571.42 -1.25 M571.42 -1.25 C571.42 -1.25, 571.42 -1.25, 571.42 -1.25" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g></g><mask/><g transform="translate(814.8 550) rotate(0 139.19999999999993 10.5)"><text x="139.2" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Provider.Create / Read / etc.</text></g><g stroke-linecap="round"><g transform="translate(1245 635) rotate(0 141.48068213915917 -0.3216494647878676)"><path d="M-0.48 -1.13 C46.58 -1, 233.89 0.09, 281.16 0.38 M1.47 0.89 C49.01 0.69, 236.52 -1.16, 283.44 -1.54" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(1245 635) rotate(0 141.48068213915917 -0.3216494647878676)"><path d="M284.77 -3.2 L270.78 5.21 L271.55 -8.67 L281.45 -2.52" stroke="none" stroke-width="0" fill="var(--diagram-ink, #1B1F23)" fill-rule="evenodd"/><path d="M283.44 -1.54 C279.24 -1.31, 278.36 2.48, 269.9 4.93 M283.44 -1.54 C278.03 0.96, 273.26 3.12, 269.9 4.93 M269.9 4.93 C270.37 1.57, 269.99 -0.63, 269.79 -7.75 M269.9 4.93 C270.13 0.15, 269.61 -4.95, 269.79 -7.75 M269.79 -7.75 C274.22 -7.34, 276.44 -4.86, 283.44 -1.54 M269.79 -7.75 C273.95 -5.84, 277.22 -4.27, 283.44 -1.54 M283.44 -1.54 C283.44 -1.54, 283.44 -1.54, 283.44 -1.54 M283.44 -1.54 C283.44 -1.54, 283.44 -1.54, 283.44 -1.54" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g></g><mask/><g transform="translate(1323.6 608) rotate(0 62.39999999999998 10.5)"><text x="62.4" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Execute query</text></g><g stroke-linecap="round"><g transform="translate(1527 693) rotate(0 -141.92407190054655 -0.6905956402925995)"><path d="M-0.88 -0.16 C-47.84 -0.36, -235.95 -1.41, -282.97 -1.19" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(1527 693) rotate(0 -141.92407190054655 -0.6905956402925995)"><path d="M-281.94 -0.14 L-267.44 -6.45 L-270.32 3.96 L-282.01 -1.37" stroke="none" stroke-width="0" fill="var(--diagram-ink, #1B1F23)" fill-rule="evenodd"/><path d="M-282.97 -1.19 C-280.45 -3.56, -279 -4.88, -269.37 -7.51 M-269.37 -7.51 C-268.53 -2, -269.1 2.84, -269.38 5.17 M-269.38 5.17 C-273.05 2.77, -278.76 2.76, -282.97 -1.19 M-282.97 -1.19 C-282.97 -1.19, -282.97 -1.19, -282.97 -1.19" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2.5" fill="none"/></g></g><mask/><g transform="translate(1333.2 666) rotate(0 52.799999999999955 10.5)"><text x="52.8" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Result rows</text></g><g stroke-linecap="round"><g transform="translate(1239 751) rotate(0 -285.1191668406129 0.4974367752671469)"><path d="M0.05 0.92 C-94.81 0.82, -475.25 0.1, -570.29 0.08" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(1239 751) rotate(0 -285.1191668406129 0.4974367752671469)"><path d="M-569.95 1.21 L-555.51 -6.62 L-556.44 6.95 L-568.92 0.62" stroke="none" stroke-width="0" fill="var(--diagram-ink, #1B1F23)" fill-rule="evenodd"/><path d="M-570.29 0.08 C-566.4 -1.58, -564.68 -2.72, -556.69 -6.25 M-556.69 -6.25 C-555.86 -2.65, -556.17 2.15, -556.7 6.43 M-556.7 6.43 C-560.51 4.69, -562.15 1.95, -570.29 0.08 M-570.29 0.08 C-570.29 0.08, -570.29 0.08, -570.29 0.08" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2.5" fill="none"/></g></g><mask/><g transform="translate(848.4 724) rotate(0 105.59999999999997 10.5)"><text x="105.6" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Result on query object</text></g><g stroke-linecap="round"><g transform="translate(666 809) rotate(0 25.74877089682576 21.94930582928697)"><path d="M-0.46 -0.39 C7.36 -0.32, 38.63 -7.46, 46.36 -0.03 C54.09 7.4, 53.68 36.9, 45.93 44.19 C38.18 51.48, 7.53 43.7, -0.14 43.72 M0.31 0.61 C8.13 0.8, 38.57 -6.45, 46.11 0.65 C53.65 7.76, 53.25 35.99, 45.55 43.22 C37.85 50.46, 7.35 43.85, -0.11 44.07" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(666 809) rotate(0 25.74877089682576 21.94930582928697)"><path d="M-0.6 44.45 L13.07 38.4 L12.13 51.83 L-0.57 44.44" stroke="none" stroke-width="0" fill="var(--diagram-ink, #1B1F23)" fill-rule="evenodd"/><path d="M-0.11 44.07 C2.23 43.6, 5.55 42.01, 14.02 39.01 M-0.11 44.07 C4.55 42.6, 9.12 40.71, 14.02 39.01 M14.02 39.01 C13.27 42.85, 13.36 46.41, 12.84 51.64 M14.02 39.01 C13.83 43.13, 13.15 47.16, 12.84 51.64 M12.84 51.64 C10.27 49.62, 8.09 47.82, -0.11 44.07 M12.84 51.64 C8.64 49.55, 4.58 46.81, -0.11 44.07 M-0.11 44.07 C-0.11 44.07, -0.11 44.07, -0.11 44.07 M-0.11 44.07 C-0.11 44.07, -0.11 44.07, -0.11 44.07" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g></g><mask/><g transform="translate(722 820.5) rotate(0 153.60000000000002 10.5)"><text x="0" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Marshal records (source to POJO)</text></g><g stroke-linecap="round"><g transform="translate(663 919) rotate(0 -284.212800295651 -0.28533049495234764)"><path d="M0.45 -0.81 C-94.17 -0.89, -473.7 0.12, -568.87 0.24" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(663 919) rotate(0 -284.212800295651 -0.28533049495234764)"><path d="M-569.06 -1.74 L-553.34 -7.24 L-554 6.32 L-570.31 0.79" stroke="none" stroke-width="0" fill="var(--diagram-ink, #1B1F23)" fill-rule="evenodd"/><path d="M-568.87 0.24 C-567.17 0.31, -563.1 -3.14, -555.29 -6.12 M-555.29 -6.12 C-555.35 -2.89, -554.75 0.5, -555.27 6.55 M-555.27 6.55 C-558.09 6, -562.56 2.2, -568.87 0.24 M-568.87 0.24 C-568.87 0.24, -568.87 0.24, -568.87 0.24" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2.5" fill="none"/></g></g><mask/><g transform="translate(214.8 892) rotate(0 163.20000000000002 10.5)"><text x="163.2" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Callback (pError, pQuery, pRecord)</text></g></svg>