meadow-endpoints 4.0.22 → 4.0.24

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 (54) hide show
  1. package/README.md +8 -15
  2. package/diagrams/how-it-works.excalidraw +1462 -0
  3. package/diagrams/how-it-works.mmd +9 -0
  4. package/diagrams/how-it-works.svg +2 -0
  5. package/dist/meadow-endpoints.js +572 -244
  6. package/dist/meadow-endpoints.js.map +1 -1
  7. package/dist/meadow-endpoints.min.js +18 -18
  8. package/dist/meadow-endpoints.min.js.map +1 -1
  9. package/docs/README.md +9 -25
  10. package/docs/_cover.md +9 -0
  11. package/docs/_sidebar.md +1 -0
  12. package/docs/_version.json +3 -3
  13. package/docs/architecture.md +119 -0
  14. package/docs/crud/README.md +6 -6
  15. package/docs/diagrams/behavior-injection-hook-points.excalidraw +677 -0
  16. package/docs/diagrams/behavior-injection-hook-points.mmd +9 -0
  17. package/docs/diagrams/behavior-injection-hook-points.svg +2 -0
  18. package/docs/diagrams/how-it-works.excalidraw +2777 -0
  19. package/docs/diagrams/how-it-works.mmd +16 -0
  20. package/docs/diagrams/how-it-works.svg +2 -0
  21. package/docs/diagrams/how-routes-are-generated.excalidraw +1237 -0
  22. package/docs/diagrams/how-routes-are-generated.mmd +13 -0
  23. package/docs/diagrams/how-routes-are-generated.svg +2 -0
  24. package/docs/diagrams/request-lifecycle.excalidraw +1897 -0
  25. package/docs/diagrams/request-lifecycle.mmd +22 -0
  26. package/docs/diagrams/request-lifecycle.svg +2 -0
  27. package/docs/diagrams/where-it-sits-in-the-stack.excalidraw +2068 -0
  28. package/docs/diagrams/where-it-sits-in-the-stack.mmd +19 -0
  29. package/docs/diagrams/where-it-sits-in-the-stack.svg +2 -0
  30. package/docs/index.html +2 -2
  31. package/docs/quickstart.md +151 -0
  32. package/docs/retold-catalog.json +155 -174
  33. package/docs/retold-keyword-index.json +6593 -2920
  34. package/package.json +8 -8
  35. package/source/Meadow-Endpoints.js +4 -0
  36. package/source/controller/Meadow-Endpoints-Controller-Base.js +40 -0
  37. package/source/endpoints/count/Meadow-Endpoint-Count.js +1 -0
  38. package/source/endpoints/count/Meadow-Endpoint-CountBy.js +1 -0
  39. package/source/endpoints/create/Meadow-Operation-Create.js +1 -0
  40. package/source/endpoints/delete/Meadow-Endpoint-Delete.js +1 -0
  41. package/source/endpoints/delete/Meadow-Endpoint-Undelete.js +1 -0
  42. package/source/endpoints/read/Meadow-Endpoint-Query.js +86 -0
  43. package/source/endpoints/read/Meadow-Endpoint-Read.js +1 -0
  44. package/source/endpoints/read/Meadow-Endpoint-ReadDistinctList.js +1 -0
  45. package/source/endpoints/read/Meadow-Endpoint-ReadLiteList.js +1 -0
  46. package/source/endpoints/read/Meadow-Endpoint-ReadMax.js +1 -0
  47. package/source/endpoints/read/Meadow-Endpoint-ReadSelectList.js +1 -0
  48. package/source/endpoints/read/Meadow-Endpoint-Reads.js +1 -0
  49. package/source/endpoints/read/Meadow-Endpoint-ReadsBy.js +1 -0
  50. package/source/endpoints/update/Meadow-Operation-Update.js +2 -0
  51. package/source/endpoints/upsert/Meadow-Operation-Upsert.js +1 -0
  52. package/test/MeadowEndpoints_SessionOverride_tests.js +75 -0
  53. package/test/MeadowEndpoints_basic_tests.js +97 -0
  54. package/dist/indoctrinate_content_staging/Indoctrinate-Catalog-AppData.json +0 -4808
@@ -0,0 +1,16 @@
1
+ Orator (API Server)
2
+ └── Meadow Endpoints (Route Registration)
3
+ ├── Controller (Request Lifecycle)
4
+ │ ├── Session Marshaler (Authentication)
5
+ │ ├── Behavior Injection (Authorization & Custom Logic)
6
+ │ ├── Error Handler (Error Responses)
7
+ │ └── Log Controller (Request Logging)
8
+ ├── Endpoints (Route Handlers)
9
+ │ ├── Create / BulkCreate
10
+ │ ├── Read / Reads / ReadSelectList / ReadLiteList / ReadDistinctList
11
+ │ ├── Update / BulkUpdate / Upsert / BulkUpsert
12
+ │ ├── Delete / Undelete
13
+ │ ├── Count / CountBy
14
+ │ └── Schema / New / Validate
15
+ └── Meadow DAL (Data Access)
16
+ └── Database Provider
@@ -0,0 +1,2 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 872 573" width="872" height="573"><!-- svg-source:excalidraw --><metadata><!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1da3PbNlx1MDAxNv3eX8Hxzux0Z+pcdTAwMDTvR77Zib1N12mzcVx1MDAxZvuYfqAlRmJDiypF2XE7/e9cdTAwMGJKtkhJcFx1MDAwNFCQXHUwMDE3k954JjZcdTAwMWaiQPBcdTAwMWVenHMvLn7/XCJJjuq7aXb0XCI5yj5cdTAwMGXSXCJcdTAwMWZW6e3RV83+m6ya5eXEXHUwMDFjXCKL7Vk5r1x1MDAwNoszx3U9ffH8OSbyXHUwMDE5Mj/4XHUwMDA1l1xm4+Wnslwiu84m9cyc91+znSS/L/43R/Jh89n39fGkXHUwMDFjZsdcbovFXHUwMDA3XHUwMDE2h1ZNKIp8OsvaXHUwMDAzXHUwMDFmm29nq807s0nRavM2XHUwMDFm1mOzS632jLN8NK7XdqWTUdFcXLz92Kyuylx1MDAwZtnLsiir5kv/8lJcdTAwMGJEztsvvUpcdTAwMDdcdTAwMWZGVTmfXGZcdTAwMWY/531eXHUwMDE0l/Xd4sqmZ0y/XHUwMDFkbVxc/6f7xuFnbOPIY58zXzlcdTAwMWFPstlsrbXlNFx1MDAxZOR1c+dcdTAwMTi1e5v2TV9cdTAwMGZcdTAwMTfd/HPbqiq9zl43/TyZXHUwMDE3RffCk+H9hddcdTAwMGXMsqw52TyL1a6Np97d9205WTx/zKRUSmvUnpHPXplcdTAwMDdfL672Pi1mWduZzXefdYyibe18OkyXXHUwMDFmwVIhxjXCnPD2okU++bDZ4qJcdTAwMWN8sHxLPlx1MDAxOWaNrVx1MDAxY6XoaLHvj69cdTAwMWUzPtNDx2jb9OrsY71ud0yu2Vx1MDAxZMFbdkeI3rY8XHUwMDEy2PTqKp3Mpmll+q+X+fUwPvyUxiex9DI+LVx1MDAxOOaCd15cdTAwMDP/b+NbmI7p0e+qtC6r5MuTt6+Ty6wyXHL/W+eJlZP6Mv+tuVx1MDAwNYLW9p6n13nRdDFfu+JJkY+anjgqsvedJ2+uWufmRb06XFyX0/bowFxcL80nWbX9XHUwMDFjyipcdTAwMWblk7T43qW16bwu32WzZXvrap51+yX7+sHW8TPSNrrFIN6Bway4Or45xtsgbC6+8fJv0bToom1cdTAwMTC2nbmCIPaBoDqR55LsXHTBcTpcdTAwMTjPq+xxXHUwMDFmQPv4gGdt5z5cdTAwMDFcdTAwMTCF2lx1MDAwMt2ngEi1UFxisYhw2Fx1MDAxYWDncU7LvDtcdTAwMWFp/rV/Ja1dLDZWf//81e6zsWpP/2LjY0dFOqtfltfXeW1u7m3Thq1er9OqPjVtziejzWPZZPjIkcWnTqqqvFx1MDAxZGfp1iM2n3v02LQs7kaLR7rotd1cYlx1MDAxZPdCqGhd4lx1MDAwM0I7o4tcdTAwMTVEW6tcdTAwMDGEeiC0baRcdTAwMDNCOVx1MDAxM1x1MDAxYSHUeVx1MDAxYsaDUHoghLa2tnH654bQXHUwMDA1iZJdWHySRPF1XHUwMDEyJVq7XHUwMDA1XHUwMDEyXHUwMDE1aFx1MDAxYys93ScjiiHc3lc84GQuXHUwMDFjyuJcdTAwMWO2OZRcXOdQXFxsmVx1MDAxZKNcdTAwMTbD8+JQ+Fx1MDAxNJ9cdTAwMTP6p+ZQQno5XHUwMDA2zFx1MDAxNOVcdTAwMWOTiDzDXHUwMDAzh3pj3ovlbXI2XHUwMDE5Lt1C8uW7cl5nybtslJvOT2tzXHUwMDFiMbMqz/bvx7O4XHUwMDEzz7K4iO1RXHUwMDFjX1x1MDAxZsWpbaBaeFx1MDAxNm1cdTAwMWJcdTAwMDWjOGew6o4vdnFcdTAwMTTC/DBCYlx1MDAxNNvEU/Asyj/fUdySZ/VBKEatXHUwMDE1XHUwMDAx0VxuXHUwMDBl0fbrXFz8qUBUSI54PP60xahcdTAwMDSmXHUwMDE1gGlcdTAwMTm4MUeqpdapVtdIgWuFwWfzNHxcdTAwMDAqOFx1MDAxN4JcdTAwMTNcdTAwMTGjXHUwMDBmVS5ky+IhtslcdTAwMTZG62xLb4vllFtcXFx1MDAwNLAtT+/AvLxcdTAwMDNVXFxKXHUwMDE5j2t4oFovXHKrqcqiyCpDUrJf59msTi7y99ngblBkMXMs14bvR670XHUwMDBlXFxWaV5cdTAwMWNTN418c+xmiSVcdTAwMDO9XG6ETtaJXHUwMDExuozdOOVcdTAwMDQpjGOMY51cdTAwMDC/2p9f3Vx1MDAxY1NcdTAwMTeMKsDocv9TYLRcdTAwMTM1dlx1MDAxOb5cdKab0Vs7dolcdTAwMDeip1x1MDAwMNFcdTAwMTBcdTAwMTJIL4hSiDVcdTAwMWZcdTAwMTCifm5UUCmQXHUwMDEwNJ5xbovRlyCBXHUwMDA0kEDMMMlRXHUwMDAxwXhDXHUwMDAyocHDzVx1MDAwZTjdOuezkkA48XKhVGhcdTAwMTZpKsgrXHUwMDE3XHUwMDAxxOJcdTAwMWYsXHUwMDAyXGJdXHUwMDE3QDCxxJtcdTAwMTHdtjxQQDydXHUwMDAz8XJcdTAwMGWSXHUwMDE4y8MoXCLf8KCBXFyaezRcck3epNVsnC5cdTAwMTSFk3k9Nt+dXHUwMDBmoo81+zR+Py3kzEVcdTAwMGJh/bRcdTAwMTBLTlxi8KxQeSHET6nUlGvMZIw5SefAs0JIIZYg1m6eXHUwMDA1XHUwMDEwPSBEkVcki1xiQZDkOlx1MDAxZVfaQvTvXHUwMDAw0Vx1MDAxMFJIL4hKyFx1MDAwNjkgRP2yQSQmREtcdTAwMTSlXHUwMDFi/Vx1MDAxYaSQXHUwMDAwUogh032lXHUwMDEwXHUwMDE5PFx1MDAxYuRPL4WYp+GFT80wa1KgY4z4vXZcdTAwMTFDLMbnIIaI7YBcdTAwMTbv5OeDXHUwMDE40leJ017ugWBGXHUwMDE1kVx1MDAxY8VcdTAwMTPNelBDTrNxepOXVfJ68ks2aFx1MDAxNISlolBW+W9cdTAwMGJBIflr8nI+q8vr5KJcdTAwMWPlg5jFkT3uZT+t5Fx1MDAxYlx1MDAxN62E99NKLFx1MDAxOV1AxFx1MDAwMsGYUM9RXHUwMDFlb6bQ0CiLYPxcdTAwMDOYWFxisYT3YWKA0Vx1MDAwM2JcdTAwMTT7pf1cdTAwMTLNpZZRpv1eXHUwMDAwREOIJX0gSlx1MDAxMOSNXHUwMDFjXHUwMDEwon5ulCHKlVx1MDAxMjxGseRccoglXHUwMDAxxFx1MDAxMor6iiVcdTAwMDRB3khofFK/eFx1MDAwM1x1MDAxNkJQJJiK0Yd+61willg8hINYordDXlRApYL93YOflk6UsVx1MDAxMyEjsr5cdTAwMDet5My8IKvk63QyXFwkXiw332WzaTmZZbOYlVx1MDAxMeeW76eDfOeig4heOlxiseR1XHUwMDAxx1xupaZcdTAwMGIvXHUwMDA3IVx1MDAxOWWaMFx1MDAxMY+a2ZrgW+BYIWRcdTAwMTBLod7dXHUwMDFjy1xyolCpsVx1MDAxN0SZV7lcdTAwMWYqlWmKjnKG2z+fXHUwMDAyop9/pcZeXHUwMDEwZZAzckCIesakNdHKQCpGN/pcdTAwMGVkkFx1MDAwMDKIpJY5XGZuMlxig5yR0Pg0T8NcdTAwMDefjCPDXFxZlEW4Ll1UXHUwMDEwi4PYrYJcdTAwMTBqqSCiLMM4UEE8vVx1MDAwM/XzXHUwMDBlrFlvXHUwMDAxXHUwMDEzXHUwMDFlz1xi7kFcdTAwMDa5KEeJtVx1MDAxZUc5XHUwMDFhmVx1MDAxN27MOoh70/dcdTAwMTNCvneq0ihdRnCbOoglpVx1MDAwYnSQUFx1MDAxZcIvq1AjQ7KwpjHGsX5cdTAwMDBcdTAwMWQkXHUwMDA0yepcdTAwMDVRXHSx5lx1MDAwM0LUK5jAOSGU4oimobZcdTAwMTD9XHUwMDExOFZcdTAwMDCOpVTPXCKNREJB/NDoVMpvkEsxUVhGOWvmJ1x1MDAxN4plcVx1MDAwZrtrNFx1MDAxMmFcdDRjoFj7+1x1MDAwNuVcdTAwMTdoRoRLjnFEeUirSPNmLfn70G3cQWaHRu9Hq/7lXHUwMDEyX1b94suW7Fx1MDAwZuBVoTJAiN96f1x1MDAxY1NOhIwyz/7fQKxCXHUwMDA0mFWf6Fx1MDAxNWD0kFlaXlx1MDAwYsJcdTAwMTLEqSSSRJSm1WL0P4DRXHUwMDEw4kdcdTAwMWaMUlxmXHUwMDEx5lx1MDAwM2LUz49ihbVcdTAwMTIyysohKahcdTAwMWZcdTAwMDHUXHUwMDBm41x1MDAxMntGmLuMXHUwMDEzXCLMgfCpvXwoplRjIbCOh4C2+Lxy0T8sXHUwMDFlYneImaJDLKtcdTAwMGX6R4K1n3tgSiBBcEQ1tlfrVFSZuWTyPDmdXHUwMDE3XHUwMDFmllx1MDAxYlx1MDAxMVx1MDAwYlx1MDAxZp9s7X6Kx8BF8dC9XHUwMDE0XHUwMDBmasn0XHUwMDAwNlx1MDAxNcpcdTAwMTP4XG7hqMlcdTAwMDREUSpcdTAwMWVDYFMhXHUwMDE0XHUwMDBm3YdNXHUwMDAxRlx1MDAwZohR4ZVcdTAwMGaoXHUwMDA01YKRTjGveCCaXHUwMDAxRENcYlx1MDAxZb0gyiDb44BcdTAwMTD1q5SqhKKGXsRcYtH3oHdcdTAwMDTQOyjvm1FPXHUwMDE5XHUwMDE0XHUwMDE2XGJcck/zNLw8qGoqjaOI4u0tPEcucofFPzjIXHUwMDFkdDtqJSnIXHUwMDFk+ztcdTAwMDe/RdVcdTAwMTnS5lx1MDAxMzKi6VZcdTAwMGZqxzvzakyeJ82v2f3vS9OwQX2Rz+r7XHUwMDFkXHUwMDE3eZ11Nl+ZP/PJ8oyIlZFgd7afijJ2UVEw6iejWLK5gKJcdTAwMDVTNL1cdTAwMDR1RrEyPinKfMJcdTAwMWMoWlxiXHUwMDE1XHUwMDA1W1x1MDAxNiTbzdFcdTAwMDCjXHUwMDA3xKj0yrrEgmnEkYqyesgvXHUwMDAw0lx1MDAxMDpKP5AqyFx1MDAxYzkgSL1cdTAwMWMpb2qokji1zlx1MDAwZiCkhEhcdTAwMWNcdTAwMTGWXCJ5bkJKZzY4XGIpoXROP1x1MDAxZko1p1hHKaRcdTAwMTQuQorNQTgoKXI7XHUwMDFhxjpeXHUwMDAzlJS+3kF4eVx1MDAwN0VcdTAwMTWhmEWopPywuOR9JsZq41x1MDAwN/NOq+rV3mYjYs2kxz3sp45cXDupI7iXOsIsuV7AvEKVXHUwMDE06Uw0d5pWQ5RUXHUwMDEy8Vx1MDAxONOBJ8C8gsgjTiBVXHUwMDAw0uX+p1x1MDAwMGlcdTAwMDduTvNqtGZcdTAwMDZVUeZcdTAwMDSXXHUwMDAw0iDySC+QYsgzOSBIvTwpwcTglOKIRsAtSKdcdTAwMDdcdTAwMDLpn0tcdTAwMWaRzDK3wUlcdTAwMWZhXHUwMDE4XHUwMDEyTULj0zxcclx1MDAxZnxyJVxmOGOa2NDC81cnfcTiIXbrI11GvppYgyw+XHUwMDAy9Fx1MDAxMU/3wLzcg9JI81x1MDAxOMuKLFvRqFx0xlx1MDAxY5s/I5ZBPtHW/eSOyknuIP3kXHUwMDBlS65cdTAwMTcwqWDFpbyyXHIxY1pcdTAwMWJcdTAwMTRGWfttXHUwMDA2TCqI3EH6MClcdTAwMDDpXHUwMDAxQSq2XHUwMDAw+UkmRVx1MDAxNKdcXEa5Lntcclx1MDAxOFxyonb0wiiHZJBcdTAwMDNi1MuRXHUwMDEyJlx0jTNrf1x1MDAwZVpHXHUwMDAwrUNzXHUwMDBiRN20jk55etA6wqBTcy9cdTAwMGaKOafmsegoXHUwMDAzXHUwMDA2N05ih8X6XHUwMDFjxFx1MDAwZbZcdTAwMWS0wp1qZCB29PVcdTAwMGV+k7qw5Nr4XHUwMDA3XHUwMDExkf2tqoiYb2tSJlx1MDAxNr9P71wiXHUwMDE2O1x1MDAxZW3pflLHrZPUQftJXHUwMDFklmQsYFGhJlb6SVx1MDAxZMt1ilx1MDAxMIqyXHUwMDE440egUUGkXHUwMDBly8Tn3TTKXHKksCRnL5D6SVx1MDAxZJgyKXAzXHUwMDAzNUKQ3j1cdTAwMDVIP/81OfuBVEFmx1x1MDAwMUHqN5qlWGOJVJSFuH5cdTAwMDO1I4DawfqrXHUwMDFkXG4yO0Ljk/mpXHUwMDFkzcRRTlx1MDAxNIsws+NcbiEntcPiXCJcdTAwMWPUXHUwMDBlaUnt6Ey8XHUwMDA1teNpStiYdiCtsIiIaT2oXHUwMDFkl4Nxdp0mz5Nvs1vz/4+p6eC466bubPFe6sdcdTAwMTXCTqtwYsv6YTvVXHUwMDBmbkm1XHUwMDAyYlx1MDAxNazMvZdPYEJjXHUwMDE14zLNV4hcdTAwMDCtXG5Cq3pBlEBcYvmAXHUwMDEw9XKbWlPMhYxcdTAwMTOkXHUwMDE0aFVcdTAwMDBaRbQrrdpYh5N3XHUwMDA2I7BcdTAwMGVnIHhqvywsRrHQMsa6qVeIObEqi4fYvVx1MDAxMifHlpUolNw2PmBVnlx1MDAwNVx1MDAwNbRn/MqM4ShHOlx1MDAxZVx1MDAwM3xgVW/My7G8TV6dXFwkX75K6zQ5XHUwMDE5XGbMfce8XHUwMDBl5+4m78mruFx1MDAxYq+yXHUwMDE0mNmphXNLVlx1MDAwN/CqUNNYtN+iXHUwMDE0SmGkmI7TLVxioFZBqFUvlHKIWFx1MDAxZFx1MDAxMKV+taA0XHUwMDEzSHFcdTAwMTVj0dMrJIFbXHUwMDA14FZSWYa3TiErziFkXHUwMDE1XHUwMDFhoNJvbSeCKUNI04hcdTAwMDa3XHUwMDFkgCondmVxXHUwMDEyu2NWnMF05MN4XGLl5SGIxIJKXHUwMDE20Wz41Xxkw06u0lmWvK3Km3yYVVx1MDAxMbOqT7R1Tzql7yH4xb3bOkqn08u6XHSEvbhcdTAwMDekMZ98uNFcdTAwMWLLfXU2bXtiseuNcVx1MDAxOGeT9KrY7Pejmzy7PbW8rM9Pz+XZ2f3t3D+yN/Oizpel+o0lNZbwe9O+xWuigVJ2v+uP/1x1MDAwMSdcdTAwMDCUayJ9<!-- payload-end --><pict-renderer-graph:source xmlns:pict-renderer-graph="https://fable-retold.github.io/pict-renderer-graph/ns/v1"><![CDATA[{"type":"filetree","mermaid":"Orator (API Server)\n └── Meadow Endpoints (Route Registration)\n ├── Controller (Request Lifecycle)\n │ ├── Session Marshaler (Authentication)\n │ ├── Behavior Injection (Authorization & Custom Logic)\n │ ├── Error Handler (Error Responses)\n │ └── Log Controller (Request Logging)\n ├── Endpoints (Route Handlers)\n │ ├── Create / BulkCreate\n │ ├── Read / Reads / ReadSelectList / ReadLiteList / ReadDistinctList\n │ ├── Update / BulkUpdate / Upsert / BulkUpsert\n │ ├── Delete / Undelete\n │ ├── Count / CountBy\n │ └── Schema / New / Validate\n └── Meadow DAL (Data Access)\n └── Database Provider\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" transform="translate(10 19) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-accent, #C9602F)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-accent, #C9602F)" stroke-width="1.4" fill="none"/></g><g transform="translate(33 10) rotate(0 114.5 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-accent, #C9602F)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Orator (API Server)</text></g><g stroke-linecap="round"><g transform="translate(14 40) rotate(0 -0.0383674987976903 9)"><path d="M0 0 C-0.26 3.51, 0.03 7.15, 0 18 M0 0 C0.13 5.54, -0.2 10.66, 0 18" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(14 58) rotate(0 8 -0.0782609133276182)"><path d="M0 0 C3.55 -0.35, 6.82 -0.33, 16 0 M0 0 C5.94 0.13, 11.91 0.13, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(40 54) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-accent, #C9602F)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-accent, #C9602F)" stroke-width="1.4" fill="none"/></g><g transform="translate(63 45) rotate(0 219 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Meadow Endpoints (Route Registration)</text></g><g stroke-linecap="round"><g transform="translate(44 75) rotate(0 -0.01931354504858973 17.5)"><path d="M0 0 C-0.11 7.54, 0.17 14.22, 0 35 M0 0 C0.01 10.05, -0.22 19.96, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(44 93) rotate(0 8 0.02418738123429165)"><path d="M0 0 C3.01 0.12, 6.26 -0.22, 16 0 M0 0 C5.53 0.22, 11.33 0.1, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(70 89) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-accent, #C9602F)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-accent, #C9602F)" stroke-width="1.4" fill="none"/></g><g transform="translate(93 80) rotate(0 178 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Controller (Request Lifecycle)</text></g><g stroke-linecap="round"><g transform="translate(44 110) rotate(0 -0.08175841070604406 17.5)"><path d="M0 0 C-0.37 6.75, -0.08 14.29, 0 35 M0 0 C0.1 9.25, -0.25 19.02, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 110) rotate(0 -0.04789836108054857 17.5)"><path d="M0 0 C-0.33 7.19, 0.14 13.68, 0 35 M0 0 C-0.25 12.71, 0.12 25.17, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 128) rotate(0 8 0.001249037981949641)"><path d="M0 0 C3.53 -0.09, 6.1 0.29, 16 0 M0 0 C3.78 -0.23, 7.26 -0.03, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(100 124) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(123 115) rotate(0 201.5 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Session Marshaler (Authentication)</text></g><g stroke-linecap="round"><g transform="translate(44 145) rotate(0 -0.03350715646429592 17.5)"><path d="M0 0 C-0.11 6.71, -0.02 13.94, 0 35 M0 0 C0.09 13.98, -0.23 27.69, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 145) rotate(0 -0.015570962399699795 17.5)"><path d="M0 0 C-0.08 7.14, 0.19 14.33, 0 35 M0 0 C-0.09 9.94, -0.18 19.84, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 163) rotate(0 8 -0.05105605942954128)"><path d="M0 0 C2.97 -0.19, 6.2 -0.08, 16 0 M0 0 C5.84 0.04, 11.38 -0.16, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(100 159) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(123 150) rotate(0 288.5 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Behavior Injection (Authorization &amp; Custom Logic)</text></g><g stroke-linecap="round"><g transform="translate(44 180) rotate(0 0.14155605351463052 17.5)"><path d="M0 0 C0.45 6.67, 0.3 14.41, 0 35 M0 0 C0.09 10.94, 0.15 22.16, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 180) rotate(0 0.12206831519664263 17.5)"><path d="M0 0 C0.31 7.1, 0.34 13.8, 0 35 M0 0 C0.23 7.41, 0.03 14.31, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 198) rotate(0 8 -0.044290093223665394)"><path d="M0 0 C3.28 -0.14, 6.28 -0.37, 16 0 M0 0 C4.49 0.15, 9.1 0.14, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(100 194) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(123 185) rotate(0 184 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Error Handler (Error Responses)</text></g><g stroke-linecap="round"><g transform="translate(44 215) rotate(0 0.030075472141781745 17.5)"><path d="M0 0 C-0.2 6.61, 0.41 13.8, 0 35 M0 0 C-0.13 7.33, -0.09 14.19, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 215) rotate(0 -0.09687202901531577 9)"><path d="M0 0 C-0.16 3.6, -0.34 7.29, 0 18 M0 0 C0.02 5.32, -0.19 10.42, 0 18" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 233) rotate(0 8 -0.05943147156202144)"><path d="M0 0 C2.86 -0.23, 6.51 -0.16, 16 0 M0 0 C5.69 0.12, 11.65 -0.17, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(100 229) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(123 220) rotate(0 190 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Log Controller (Request Logging)</text></g><g stroke-linecap="round"><g transform="translate(44 250) rotate(0 -0.030958899884335978 17.5)"><path d="M0 0 C-0.33 6.96, 0.03 14.64, 0 35 M0 0 C0.2 12.84, -0.05 25.36, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(44 268) rotate(0 8 -0.03152070807743712)"><path d="M0 0 C3.56 -0.31, 6.87 0.18, 16 0 M0 0 C3.75 0.13, 7.63 -0.18, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(70 264) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-accent, #C9602F)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-accent, #C9602F)" stroke-width="1.4" fill="none"/></g><g transform="translate(93 255) rotate(0 155 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Endpoints (Route Handlers)</text></g><g stroke-linecap="round"><g transform="translate(44 285) rotate(0 -0.08570384348442772 17.5)"><path d="M0 0 C-0.38 6.74, -0.18 14.08, 0 35 M0 0 C0.1 11.86, 0.01 23.98, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 285) rotate(0 -0.06522695755113972 17.5)"><path d="M0 0 C-0.35 7.17, 0.04 14.47, 0 35 M0 0 C-0.08 8.32, 0.06 16.13, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 303) rotate(0 8 -0.025368611090613058)"><path d="M0 0 C3.51 -0.09, 6.79 0.16, 16 0 M0 0 C4.96 -0.15, 9.84 -0.12, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(100 299) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(123 290) rotate(0 114.5 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Create / BulkCreate</text></g><g stroke-linecap="round"><g transform="translate(44 320) rotate(0 0.01009649666846002 17.5)"><path d="M0 0 C0.3 6.98, -0.26 14.17, 0 35 M0 0 C0.12 8.53, -0.02 17.14, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 320) rotate(0 0.06048406247134608 17.5)"><path d="M0 0 C0.34 7.42, -0.05 14.56, 0 35 M0 0 C-0.06 11.49, 0.03 23.29, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 338) rotate(0 8 0.03538442642198447)"><path d="M0 0 C3.28 0.07, 6.75 0.2, 16 0 M0 0 C3.46 -0.14, 6.75 0.18, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(100 334) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(123 325) rotate(0 369.5 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Read / Reads / ReadSelectList / ReadLiteList / ReadDistinctList</text></g><g stroke-linecap="round"><g transform="translate(44 355) rotate(0 -0.1201247368629943 17.5)"><path d="M0 0 C-0.46 6.76, -0.14 14.56, 0 35 M0 0 C-0.19 11.09, 0.02 21.66, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 355) rotate(0 -0.048207925363790594 17.5)"><path d="M0 0 C-0.43 7.2, 0.08 13.94, 0 35 M0 0 C0.14 14.05, 0.07 27.81, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 373) rotate(0 8 -0.0033819214397681208)"><path d="M0 0 C3.39 -0.1, 6.77 -0.28, 16 0 M0 0 C4.24 0.15, 8.83 0.23, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(100 369) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(123 360) rotate(0 242 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Update / BulkUpdate / Upsert / BulkUpsert</text></g><g stroke-linecap="round"><g transform="translate(44 390) rotate(0 -0.075805666273002 17.5)"><path d="M0 0 C-0.44 6.73, -0.24 14.66, 0 35 M0 0 C-0.15 9.93, 0.3 19.65, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 390) rotate(0 -0.05205187848696369 17.5)"><path d="M0 0 C-0.4 7.16, -0.02 14.05, 0 35 M0 0 C0 12.89, 0.18 25.8, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 408) rotate(0 8 -0.06874531856064436)"><path d="M0 0 C3.43 -0.14, 6.75 -0.28, 16 0 M0 0 C3.76 -0.08, 7.72 0.08, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(100 404) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(123 395) rotate(0 103 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Delete / Undelete</text></g><g stroke-linecap="round"><g transform="translate(44 425) rotate(0 0.067521661646051 17.5)"><path d="M0 0 C0.17 6.92, 0.34 14.05, 0 35 M0 0 C-0.18 12.85, 0.12 25.74, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 425) rotate(0 -0.05845950312541248 17.5)"><path d="M0 0 C0.2 7.35, -0.44 14.43, 0 35 M0 0 C-0.04 8.82, -0.01 17.89, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 443) rotate(0 8 -0.00742138525174596)"><path d="M0 0 C3.23 -0.07, 6.53 -0.07, 16 0 M0 0 C5.15 -0.13, 10.78 0.13, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(100 439) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(123 430) rotate(0 91 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Count / CountBy</text></g><g stroke-linecap="round"><g transform="translate(44 460) rotate(0 0.07861919736899736 17.5)"><path d="M0 0 C0.09 7.35, 0.4 14.49, 0 35 M0 0 C-0.16 13.27, 0.2 25.99, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 460) rotate(0 -0.055955589859905785 9)"><path d="M0 0 C0.1 3.39, -0.37 7.05, 0 18 M0 0 C0 4.78, 0.07 9.26, 0 18" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 478) rotate(0 8 0.01476996358201177)"><path d="M0 0 C3.06 0.4, 6.44 -0.34, 16 0 M0 0 C5.18 0.1, 10.51 0.14, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(100 474) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(123 465) rotate(0 137.5 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Schema / New / Validate</text></g><g stroke-linecap="round"><g transform="translate(44 495) rotate(0 0.04065759503006561 9)"><path d="M0 0 C-0.22 3.77, 0.29 7.45, 0 18 M0 0 C0.15 6.2, 0.21 12.39, 0 18" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(44 513) rotate(0 8 0.010036459386924435)"><path d="M0 0 C2.82 -0.03, 6.25 0.06, 16 0 M0 0 C3.4 0.09, 6.8 -0.05, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(70 509) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-accent, #C9602F)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-accent, #C9602F)" stroke-width="1.4" fill="none"/></g><g transform="translate(93 500) rotate(0 143.5 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Meadow DAL (Data Access)</text></g><g stroke-linecap="round"><g transform="translate(74 530) rotate(0 0.010572835516924783 9)"><path d="M0 0 C0.17 3.42, -0.02 7.59, 0 18 M0 0 C-0.16 6.36, 0.16 13.23, 0 18" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 548) rotate(0 8 0.053477754859443394)"><path d="M0 0 C3.21 0.35, 6.85 0.05, 16 0 M0 0 C3.84 -0.13, 7.41 0, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(100 544) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(123 535) rotate(0 103 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Database Provider</text></g></svg>