retold-data-service 2.1.2 → 2.1.5

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 (80) hide show
  1. package/BUILDING-AND-PUBLISHING.md +2 -2
  2. package/Dockerfile +1 -1
  3. package/README.md +12 -27
  4. package/build-all.js +66 -0
  5. package/diagrams/architecture.excalidraw +2966 -0
  6. package/diagrams/architecture.mmd +17 -0
  7. package/diagrams/architecture.svg +2 -0
  8. package/docs/README.md +12 -12
  9. package/docs/_brand.json +18 -0
  10. package/docs/_cover.md +1 -1
  11. package/docs/_topbar.md +1 -1
  12. package/docs/_version.json +3 -3
  13. package/docs/api/reference.md +8 -8
  14. package/docs/architecture.md +6 -84
  15. package/docs/diagrams/component-diagram.excalidraw +2807 -0
  16. package/docs/diagrams/component-diagram.mmd +14 -0
  17. package/docs/diagrams/component-diagram.svg +2 -0
  18. package/docs/diagrams/component-stack.excalidraw +1169 -0
  19. package/docs/diagrams/component-stack.mmd +6 -0
  20. package/docs/diagrams/component-stack.svg +2 -0
  21. package/docs/diagrams/hook-execution-order.excalidraw +3230 -0
  22. package/docs/diagrams/hook-execution-order.mmd +19 -0
  23. package/docs/diagrams/hook-execution-order.svg +2 -0
  24. package/docs/diagrams/initialization-flow.excalidraw +1800 -0
  25. package/docs/diagrams/initialization-flow.mmd +22 -0
  26. package/docs/diagrams/initialization-flow.svg +2 -0
  27. package/docs/index.html +6 -7
  28. package/docs/lifecycle-hooks.md +2 -21
  29. package/docs/retold-catalog.json +141 -141
  30. package/docs/retold-keyword-index.json +6818 -1608
  31. package/package.json +130 -96
  32. package/source/services/RetoldDataService-Brand.js +13 -0
  33. package/source/services/comprehension-loader/pict-app/Pict-Application-ComprehensionLoader.js +65 -15
  34. package/source/services/comprehension-loader/pict-app/views/PictView-ComprehensionLoader-Layout.js +28 -74
  35. package/source/services/comprehension-loader/pict-app/views/PictView-ComprehensionLoader-Load.js +17 -17
  36. package/source/services/comprehension-loader/pict-app/views/PictView-ComprehensionLoader-SettingsPanel.js +62 -0
  37. package/source/services/comprehension-loader/pict-app/views/PictView-ComprehensionLoader-Shell.js +142 -0
  38. package/source/services/comprehension-loader/pict-app/views/PictView-ComprehensionLoader-StatusBar.js +125 -0
  39. package/source/services/comprehension-loader/pict-app/views/PictView-ComprehensionLoader-StatusDetail.js +89 -0
  40. package/source/services/comprehension-loader/pict-app/views/PictView-ComprehensionLoader-TopBar-Nav.js +42 -0
  41. package/source/services/comprehension-loader/pict-app/views/PictView-ComprehensionLoader-TopBar-User.js +48 -0
  42. package/source/services/comprehension-loader/web/comprehension-loader.js +5415 -6183
  43. package/source/services/comprehension-loader/web/comprehension-loader.js.map +1 -1
  44. package/source/services/comprehension-loader/web/comprehension-loader.min.js +75 -1
  45. package/source/services/comprehension-loader/web/comprehension-loader.min.js.map +1 -1
  46. package/source/services/comprehension-loader/web/favicons/favicon-dark.svg +13 -0
  47. package/source/services/comprehension-loader/web/favicons/favicon-light.svg +13 -0
  48. package/source/services/comprehension-loader/web/favicons/favicon.svg +13 -0
  49. package/source/services/comprehension-loader/web/index.html +3 -0
  50. package/source/services/comprehension-loader/web/pict.min.js +12 -0
  51. package/source/services/data-cloner/DataCloner-Command-Headless.js +2 -1
  52. package/source/services/data-cloner/DataCloner-Command-Sync.js +110 -75
  53. package/source/services/data-cloner/pict-app/Pict-Application-DataCloner.js +70 -47
  54. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-Export.js +3 -3
  55. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-Layout.js +40 -86
  56. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-SettingsPanel.js +61 -0
  57. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-Shell.js +136 -0
  58. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-StatusBar.js +117 -0
  59. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-StatusDetail.js +81 -0
  60. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-Sync.js +18 -18
  61. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-TopBar-Nav.js +42 -0
  62. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-TopBar-User.js +48 -0
  63. package/source/services/data-cloner/pict-app/views/PictView-DataCloner-ViewData.js +2 -2
  64. package/source/services/data-cloner/web/data-cloner.js +5772 -7986
  65. package/source/services/data-cloner/web/data-cloner.js.map +1 -1
  66. package/source/services/data-cloner/web/data-cloner.min.js +75 -1
  67. package/source/services/data-cloner/web/data-cloner.min.js.map +1 -1
  68. package/source/services/data-cloner/web/favicons/favicon-dark.svg +13 -0
  69. package/source/services/data-cloner/web/favicons/favicon-light.svg +13 -0
  70. package/source/services/data-cloner/web/favicons/favicon.svg +13 -0
  71. package/source/services/data-cloner/web/favicons/favicons/favicon-dark.svg +13 -0
  72. package/source/services/data-cloner/web/favicons/favicons/favicon-light.svg +13 -0
  73. package/source/services/data-cloner/web/favicons/favicons/favicon.svg +13 -0
  74. package/source/services/data-cloner/web/index.html +3 -0
  75. package/source/services/data-cloner/web/pict.min.js +12 -0
  76. package/test/Bundles_smoke_tests.js +43 -0
  77. package/test/ComprehensionLoader_smoke_tests.js +95 -0
  78. package/test/DataCloner-RuntimeOverrides_tests.js +344 -0
  79. package/test/DataCloner_smoke_tests.js +87 -0
  80. package/docs/css/docuserve.css +0 -327
@@ -0,0 +1,17 @@
1
+ Fable (Core)
2
+ └── Retold Data Service
3
+ ├── Orator (API Server)
4
+ │ └── Restify (HTTP Engine)
5
+ ├── Meadow (Data Access Layer)
6
+ │ ├── Schema (from compiled Stricture model)
7
+ │ ├── FoxHound (Query DSL)
8
+ │ └── Provider (MySQL / MSSQL / PostgreSQL / SQLite / MongoDB / etc.)
9
+ └── Meadow Endpoints (REST Routes)
10
+ ├── Create POST /1.0/Entity
11
+ ├── Read GET /1.0/Entity/:ID
12
+ ├── Reads GET /1.0/Entities/:Begin/:Cap
13
+ ├── Update PUT /1.0/Entity
14
+ ├── Delete DELETE /1.0/Entity/:ID
15
+ ├── Count GET /1.0/Entities/Count
16
+ ├── Schema GET /1.0/Entity/Schema
17
+ └── New GET /1.0/Entity/Schema/New
@@ -0,0 +1,2 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1195 608" width="1195" height="608"><!-- svg-source:excalidraw --><metadata><!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO2da3PbNlx1MDAxNoa/51dovF+8M3WM+8XffJGbbHNxXCJnu+1OZ4eWaItcdTAwMWJa1FK0XHUwMDFkN9P/vqBsi5RcYltcdTAwMDBcdLlognYmiUSJgsjz6uB9ziH49UWvt1XcTuOtvd5W/GVcdTAwMTilySiPbrZ+KJ+/jvNZkk3UJjR/PMuu8uH8leOimO7t7kLEX1x1MDAwMvU/3KOcQHj3rjiNL+NJMVOv+7d63Ot9nf+ptiSj8r3nxc4kXHUwMDFixTtcdTAwMTAgMn/HfNtiXGZpmkxncbXhS/nxZPHwVj3EYPHwJlx1MDAxOVx1MDAxNWP1lFg8M46Ti3Gx9FQ0uUjLnVdvm1x1MDAxNXn2OT7M0iwvP/Rvh5JcdTAwMDF0XFx96Fk0/HyRZ1eT0eOvOU/SdFDczvesXHUwMDBljTpwWyv7//l+cPAlWdny2PvUR16MJ/FstjTabFx1MDAxYVxyk6L85lx1MDAxMFTPluObvlx1MDAxZc2P82/VqPLoMn5dXHUwMDFl6MlVmtZ3PFx1MDAxOd3veGnDLI5H81x1MDAxZNeO8cp5rz/3LpvMI1x1MDAwMFx1MDAwMkpcdTAwMDCXgi1ekMyO1Jkv5ns7j9JZXFxcdTAwMWTM8rP7taioRns1XHUwMDFkRXdvgVxcXHUwMDAwQiWAXHUwMDFjI7zYniaTz6sjTrPhZ82nJJNRXFzGylZcdTAwMDS25s/98cNj0aeO0Fx1MDAwZWiGXlx1MDAxMX8pluOO8KW4Q7BcdTAwMTF3kGhcIlx1MDAwZjlcdTAwMGW9XCKPJrNplKvj1yr8Wlx1MDAwNFx1MDAxZnzO4JOI2sRcdTAwMWVnXHUwMDAwYlx1MDAwMCTxJvbmkaNcdTAwMGXocXSWxr3twyyP/147U9mkXHUwMDE4JL+XQ0dg6dnj6DJJy0NLl3a1nyZcdTAwMTflXHUwMDEx2Erj89pcdTAwMTlXh6FI1C/0YnORTautQ7W/KJnEefP4Z3lykUyi9PTJYUZXRfYxnt1ccrTIr+L6kYhfPVx1MDAwNDd8WTtblejgXHUwMDFh0cXp2c71XHUwMDBlbKqu3PnKr30ln/mxaaquOopcdTAwMGLNQVx1MDAxYs2JfX7MUUfNjaPh+CqPXHUwMDFm/9HHK1uMfvRfVlx1MDAwN/dcdTAwMTmUx7ioh9c65WFMIOWc+PirXzud0yypzz/K/6p/9aq4mD9Y/Pu3XHUwMDFm1r9cdTAwMWGK6uUvVt62lUaz4jC7vExcbvXlTsoxNI56XHUwMDEx5cWBXHUwMDFhczK5WN1cdTAwMTZPRo9smb9rP8+zm3FcdTAwMWM1TrF636Pbpll6ezE/pfOjtl6h41ZcbmWymVx1MDAxN6tcdTAwMTBZSLSK4aBQXHUwMDBihVZcdTAwMDfXRKFcXFxizlx1MDAwMa5OkD9cbsVcdTAwMWJSaFx1MDAxNWsrL//WXHUwMDE0OrdNnFx0Q9dEl11cdTAwMTOr4ja4JjfiVOfCRpxcdTAwMDIgToms2Vd/xElMTJMmOTRNXHUwMDEzXzZNlDXCXHUwMDBlIdlcZjwr01x1MDAwNFx1MDAwZuAxwt+1aWLMKjFQIZCAXHUwMDE0+pNcdTAwMThcdTAwMWVM08e4yNJR7ygqot4gzq+TYeyxd3pytN0sXHUwMDE0NbJQyGSCRpcnaKKpQY2FwtWgwlx1MDAwNM1Yh/WfczN4oSZogvtcdTAwMDMvqlx1MDAwMGTPYaEw/XYnaHdcdTAwMTaqjUIhqFx1MDAwMlwieCjnXHUwMDEyrTKzgURcdTAwMTHggFx1MDAwMs6pP7my0ihcdTAwMGYmyoGJglx1MDAwMGlcblx1MDAwMFpcdTAwMTclll1UPUiDjXJWfLLKoZBKNVx1MDAxNkGkj1x1MDAwMlx1MDAxNSZGSpNcIppGXG6CZSclmyA8OCkn5Ser9Fx1MDAwMFx1MDAxMVx1MDAwM1JwKJA30fdgpd7nUZHlve39k9dzc1x1MDAxMuc+l6GeXHUwMDFjbTcrJdeIMI+SdFx1MDAwN5vB7tWZmqZcblx1MDAxY8yUK6BGraCGwJRcdTAwMTNMoI9AbT+Yqe5m6npcdTAwMDebSFS0kmgoXHUwMDE5t5IotmLekFx0KSAjXkLvg1Azdlx1MDAwMTxaaVx1MDAxNIei8Vx1MDAwNjVqlUYhUmlUXHUwMDAy6mVfx2FcdTAwMDBcdTAwMWVcdTAwMGWAh0CmVWNcYleAXHUwMDA3dl43NtBp4zXfXHUwMDE08Fx1MDAxMMguh3JcdTAwMDDUVFx1MDAxN3mpzyNcdTAwMTPeoclcdTAwMTBcdTAwMWHegZd5hzLajchDXHUwMDE0NWMvXHUwMDAwXHUwMDBmy/SA7ErHXHUwMDFjXGKIJPeHtlWl41mRnN/2tl+dnp70+pNcdTAwMGI16/CZeKxcdTAwMTlvN+bRNypcdTAwMWZrLrlYjzw0PVx1MDAxY1x1MDAwMXm4ylx1MDAwNdyOPlx1MDAxMilcdTAwMDDl0Ev2ffxcdTAwMWN+6ltnXHUwMDFl43ZcdTAwMWHloYC8QY029Phkwlx1MDAwNEhZKkp97PH4MdgpXHUwMDA3dkoyTenAqHzMQ/nYtTrVybDKoOpQQEZcdTAwMDXw0U29MnFTmvywvnpcZllcdTAwMTOKY6iZxlx1MDAwNTdlmVx1MDAxY5hVclx1MDAxMKWbZ1x1MDAwMPhXPX6rflx1MDAxYbOb3va8t3V/OFRfufcmuvW7iGwy6G6+6rVJLZm2qyVrWjqCsXKkS2JcdMEx4Fx1MDAwMFx1MDAwMlZL0H+2MKtcdTAwMTj8RzBWLorJtE2hKmh0g1x1MDAxYYV2IFxcYk5cYmDIx6nbT0GjLuBHXHUwMDFijVwiXHUwMDEwislcdTAwMWLUqF1cdTAwMWUlylVwIDxanqPS6JtAP1x1MDAxY9BcdTAwMGZcbtpcdTAwMTaTXHUwMDExXGLFZNf6VGfDSp9cdTAwMTAyXHUwMDA2JfDy6pa3JvhDkyFcZorJslnDXCIkdM93T1x1MDAwZsAqPai5XHUwMDFiYZwyf2ZwXHUwMDBm+GMwXHUwMDFjx5dRb/s8zy57w+xymqTxqDco8mRYqFx1MDAxY967VD99qc8oxPZcdTAwMGJ0w1wi70ywXGJrhUWQpvEjWC5nvYHW9WaG1XTOx3TxPlguXHUwMDE3WIS1sVxcQaNcdTAwMWLUaK0uY3LBMudcdTAwMTJcdTAwMDLhZYv9SZCoXHUwMDBiKtJKoiS0hGxQonZpVCibXHUwMDA2JEX+lP0qjX5cYlTERYs9MF1SoEFFiPOmkO+eilxiYJVCXHUwMDA1hFx1MDAxY1wi7JEtreT50Vx1MDAwNIpoXHUwMDEyxHoogrBmSVx1MDAwMaKZxlx1MDAwNShimVx1MDAxZIBddsBIXHUwMDEwXHUwMDA2iUd1rcWS1tmXV+VcdTAwMDf2tj9cXMX5be9o8MZnXHUwMDA28vRwu1x1MDAxMY+BXHTx4O2Ih6Y5K7gpV4Dcslx1MDAxMURN0vxaKbFcbsHT4KZcXFx1MDAwMFx1MDAwZt7GTZlJNCwq0Eqidn0gXGJIXHUwMDA0IZReuqlPz6HRb39RgVZcdTAwMWHloVx1MDAwZmSDXHUwMDFhtUqjnFx0Slx1MDAxOYA+toH8M1x1MDAwMFx1MDAwZlx1MDAwN8CDtW9cdTAwMDPhoVxyxLU8mW1cdTAwMWKI4Fx1MDAxOCPqZZvWzybEQ5MgXGaIXHUwMDA3a5at6qulXHUwMDA04tG6XHUwMDBiyc5kMaGihUPqT83qgXic5Nl1Morz3vbb28GHN73d3tvB3d8n2ay4yOO7XHUwMDA36s+kiMut2eRcIjs6UP+Ki+FLn+GIs2/WjaP8y2ihXHUwMDAyTW5Zj1E0TV7Bo7lapdeuKFxyuZowXCJIvbxF5C/Bo7nwaG00imGoSm9Qo5ZLXHUwMDE5XHUwMDEzgVx1MDAwMUZemrRfg0lzYNKQcVV6ZaWC+rXhYaVcdTAwMDI38kR2RWlcdTAwMDZcdTAwMDBnmDNcdTAwMWYpZ2Ri0TT5Yf1CXHUwMDA1XHUwMDE4aFx1MDAxNiqgmlxmXHUwMDExLJplcrAsSktJXHUwMDA1ZdSjXHUwMDBiRVZWKuhPRneZobf9sT847X3Mrop45rNcdTAwMDMzXHUwMDFkeDeDdWZksGRcdTAwMGLAjjVcciOhTu0qO9RcdTAwMGWbUZ1aqUlcdTAwMTJGfExcdTAwMGbDUKh2YbBaaZSEXCLYXHUwMDA2NVpcdTAwMWRJk5XgKOKCQuyjv1x1MDAxYVx1MDAwNX/lwF9hpLlcdTAwMWPVqFxihkkogrmWJ0Z2KVx1MDAxNFx1MDAwMCY4k17yj9jEYWlcdTAwMTLE+lwiXHUwMDE4xppcIpgm9ILBskxcdTAwMGXIKjlAXGIolVx1MDAwNHposFx1MDAwZfNY7dJjI7U6wG6G6XyN1IaXhZnS6que3ClNM1x1MDAxN+M6llFFyTPNxv7qUuP1oFr/Q1x1MDAwZkunhD1a3G1Rbn4/OFWPd+FLsNufXHUwMDE05XHTya42g/8zK8hPXGa2m1x1MDAwNC+MmFx1MDAwNdTA7PWGSNPzXHUwMDExoIWrtiNu1XYkOVx1MDAxM1x1MDAxMGCP2j6qXHUwMDEwXHUwMDFjXHUwMDA3ZuGCWbTTqFxiVeFccmrUclx1MDAwNbfyUjSJvaw7JYFadFx1MDAxMGk0/un97MPxr/jw58H52btf5Kfi1/+05Vx1MDAxN1wiXFy17FqpKjtaKVUyhrmUXqbT/5rwXHUwMDBiXbIwXHUwMDAwXHUwMDE4vFmGorRcdTAwMTl7XHUwMDAxYFgmXG5mlSgwkVx1MDAxOFx1MDAxMeFR9FU3XHUwMDA2q+Nt7+jF8vC6XHUwMDE5p89cdTAwMDbswkxlXHJ4obmlXHUwMDEwgtV5XHTwovV8zG55JyhcdTAwMTBcdTAwMDbIo9tcdD3I7Md+SVx1MDAwM+o4YHfv9ZHH/GLdgLtJMTVjXHUwMDE4Rlx1MDAwYlx1MDAwNKz4I6JpilxuXGbDWWNcdTAwMTRoiO8pQXJBkeTYy0unLlx1MDAwM8RwXHUwMDAyMVqJXHUwMDE0hs6LTYq0XHUwMDFhpdmKa8pcdTAwMWNcdTAwMTHp0Zo6lUongWI46L2AQKKmTI3gXHUwMDA1gaH5wr1CpVVcdTAwMWFlynBgIL3EjJlcdTAwMTG80CSJ9fCCgGY5ioX29s7hJ6VVfkBcdTAwMTBSTDnyaFx1MDAxNlenXHUwMDE3M8/xxcyVaZqa8Fx1MDAwYiOhrfJcdTAwMGKiuStcdTAwMTBcdTAwMDY6TFx1MDAxOPiFpdJIPahcZmZiklx1MDAxMKU1/zhhg1x1MDAwNyTxbHfvIFbhvrt3XHUwMDE4TbVcIvRcdTAwMTRlPDr0bvr8n1x1MDAxOdTQTMTW+yVNXHUwMDFmYoBcdTAwMWGuRGq3pJrkXHUwMDA0QOWYfJyM5YFpOGFcdTAwMWGtNEpDY8ZcdTAwMDY1ateYISigkHDsT8NwJdLZhkT6vSGN1ouqkVpcdTAwMWQ2IFxyZ9DRriGDQUK5JF4qtDBiXHUwMDFhmiRhwDRIszxcdTAwMTWuKHGQIOxWVVx1MDAxM4JcdTAwMTMpiPBnXHUwMDEy92C0Ps136THTWFx1MDAxZGA303RlXHUwMDAyNYyU1oBcdTAwMWG6m/qEK0pcXMzF7JoyXHUwMDA0l1x1MDAxODBcdTAwMGaZxsmn1Vx1MDAxZVx1MDAwN48pxlOD7SbBazNugZtcIlxc74k07YeBW7i6cVx1MDAwZrWbcVx0jpRmvLyC9yZwXHUwMDBiJ9yilUZF6MXYoEbtuIWkXHUwMDAwIYk9utC5XHUwMDEy6ZfALVx1MDAxY3BcdTAwMGJJWmNcdTAwMGJcdTAwMTE6MZzPZYnd7VRcdTAwMDRg5X3Z/bGNlTxvjaCFJkNcdTAwMThAXHUwMDBiXHUwMDFllsHYRPRcdGJ5vy0sKVx1MDAwMdijO4w/WKm7UXhMLVZcdTAwMDfYzTL9bkItjKTWoFx1MDAxNppcdTAwMWLzhEtJnMzE7Fx1MDAxNmUnXHUwMDAySYiERze3W2it/6Z/2v9cdTAwMGJdS7JuwJ20eFx1MDAwNoBcdTAwMTm/IC28XHUwMDEx1XQgXHUwMDA2fvEnKZJTyVx1MDAwNKI+Tr7OQK3vLlx1MDAxMIzFgbAnXHUwMDE4rVSKQufFXHUwMDA2VWq1XHUwMDE2NuOcQyH9gf01jaJccmn0e1x1MDAwM1x1MDAxOKb3SVhcdTAwMDVcdTAwMTi0Zlx1MDAwNVx1MDAwMsBwXHUwMDA1MKySKJdlLVx1MDAwZfl4q6EzgI1cYoYmQ6wnXHUwMDE4XHUwMDE0Nlx1MDAwYlHhUlx1MDAxMlx1MDAxN1x1MDAwNMPuTlx0XGYhWl5O4p+rOlSfVmhNlFx1MDAxZlx1MDAwMGNlfFx1MDAxZD1cdTAwMTMxXHUwMDAxXHUwMDE4RkpbXHUwMDA1XHUwMDE4VHPXKkQ1pilcdTAwMDBcZlupWV0zXGIpolx1MDAwMlxi5KHUtFx1MDAxN2Q8rj8/IIbJoDuKkpqBXGbNMurrLZKm7TCAXGZXczBsVURcIohcdTAwMGJcYvzEXHUwMDE4LGBcZidcdTAwMTijlUZpaMTYoEbtSm2YQiFcdTAwMTHzaCmpmkr5hlT6fYFcZlxiUNtWXGZKQyuGa4WWp8NKolxmkXJhXGZcdTAwMWZ7pc6AMGJcdTAwMTmaNGHAMkjoxthEXHUwMDAwSmS5+DOSRCiP5Vx1MDAwZkt7MFiD4Ti+jDyGXHUwMDE5q1x1MDAwM+xonKRcdM0w0lqDZmhuXHUwMDExh0igXHUwMDE5XHUwMDBl5mN2xV9cdFx1MDAxMVwi3EdwqFkp81x0/XlcbjOaY+4oyX0zlsGaolxc75M03YhcdTAwMWFFQsezr+/DJyFmRVx1MDAxOVx1MDAwNYSIXHUwMDEx4eNFJWfg4DlgXHUwMDA2XHUwMDE01ctfrLztr26T7mFGK5HK0JOxQZHaLfBZ3qBcdTAwMWNS7KdKXHUwMDBmXHUwMDAzzHBcdTAwMDAzMG27wCetNetcdTAwMDSW4Uag6mxYXHRcdTAwMTRcdTAwMTPJXHUwMDAw4Vx1MDAxZTVcdTAwMWLXXHUwMDA0emSEMjRJwlx1MDAwMGWIZlmK6JrdXHUwMDAzyrBLXHUwMDEw1CpBcECxZD7enuRdfKO1UX5gjKXRdTRMfVx1MDAxM4ZhJLJcdTAwMDbD0NwxXHUwMDBlaYFhYFx1MDAxOJYqs13dU0DAMfRPZo/ygN3HXHUwMDA06DnH2HUpzeN7ab64nzRuRdPpoChcdTAwMTfB2btcdTAwMTeqiqtktPLTdPdcXFx1MDAxMU+rozJ/6q2arvUn0Vm6ej62rpP45kAzVTo+OOb9/v3XuT+Vb6/SXCJcdTAwMTmo4Fx1MDAxOVx1MDAxNirEylxi+VqOb/7zUWosvn/qj/9cdTAwMDPDui27In0=<!-- payload-end --><pict-renderer-graph:source xmlns:pict-renderer-graph="https://fable-retold.github.io/pict-renderer-graph/ns/v1"><![CDATA[{"type":"filetree","mermaid":"Fable (Core)\n └── Retold Data Service\n ├── Orator (API Server)\n │ └── Restify (HTTP Engine)\n ├── Meadow (Data Access Layer)\n │ ├── Schema (from compiled Stricture model)\n │ ├── FoxHound (Query DSL)\n │ └── Provider (MySQL / MSSQL / PostgreSQL / SQLite / MongoDB / etc.)\n └── Meadow Endpoints (REST Routes)\n ├── Create POST /1.0/Entity\n ├── Read GET /1.0/Entity/:ID\n ├── Reads GET /1.0/Entities/:Begin/:Cap\n ├── Update PUT /1.0/Entity\n ├── Delete DELETE /1.0/Entity/:ID\n ├── Count GET /1.0/Entities/Count\n ├── Schema GET /1.0/Entity/Schema\n └── New GET /1.0/Entity/Schema/New\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 74 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">Fable (Core)</text></g><g stroke-linecap="round"><g transform="translate(14 40) rotate(0 0.030844126669951066 9)"><path d="M0 0 C-0.16 3.55, 0.29 7, 0 18 M0 0 C0.02 3.76, 0.07 7.56, 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.012251801714882049)"><path d="M0 0 C2.87 -0.29, 6.28 0.37, 16 0 M0 0 C4.38 -0.03, 9.28 -0.2, 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 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">Retold Data Service</text></g><g stroke-linecap="round"><g transform="translate(44 75) rotate(0 -0.010996201273503203 17.5)"><path d="M0 0 C-0.26 6.75, 0.08 14.23, 0 35 M0 0 C-0.1 12.29, 0.22 24.92, 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.0009939763530510959)"><path d="M0 0 C2.89 0.25, 6.2 -0.24, 16 0 M0 0 C3.75 -0.07, 7.13 -0.04, 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 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">Orator (API Server)</text></g><g stroke-linecap="round"><g transform="translate(44 110) rotate(0 0.00978578622618187 17.5)"><path d="M0 0 C-0.33 7.02, 0.33 13.95, 0 35 M0 0 C0.17 8.28, 0.13 16.95, 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.10347349516554516 9)"><path d="M0 0 C-0.28 3.96, -0.42 7.41, 0 18 M0 0 C-0.03 6.1, 0.14 11.84, 0 18" 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.023716304649170183)"><path d="M0 0 C3.56 0.07, 6.45 -0.07, 16 0 M0 0 C3.45 0.13, 6.37 -0.22, 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 126 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">Restify (HTTP Engine)</text></g><g stroke-linecap="round"><g transform="translate(44 145) rotate(0 -0.021803609983265915 17.5)"><path d="M0 0 C-0.41 7.02, 0.3 14.55, 0 35 M0 0 C0.26 10.98, -0.16 21.47, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(44 163) rotate(0 8 -0.061622293131790684)"><path d="M0 0 C3.57 -0.29, 6.36 0.07, 16 0 M0 0 C6.07 -0.2, 12.1 -0.15, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(70 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-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 150) 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">Meadow (Data Access Layer)</text></g><g stroke-linecap="round"><g transform="translate(44 180) rotate(0 -0.01411981440706711 17.5)"><path d="M0 0 C0.05 6.86, -0.12 13.8, 0 35 M0 0 C0.05 7.37, -0.03 14.25, 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.013629809849874164 17.5)"><path d="M0 0 C0.09 7.29, 0.09 14.18, 0 35 M0 0 C0.2 10.33, -0.16 20.4, 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.011507097229170427)"><path d="M0 0 C3.07 -0.06, 6.06 -0.16, 16 0 M0 0 C5.89 0.1, 11.76 0.19, 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 224.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 (from compiled Stricture model)</text></g><g stroke-linecap="round"><g transform="translate(44 215) rotate(0 -0.16731598226869338 17.5)"><path d="M0 0 C-0.39 7.26, -0.49 13.8, 0 35 M0 0 C-0.18 7.73, -0.25 15.82, 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.03518167313149689 17.5)"><path d="M0 0 C-0.36 6.7, -0.28 14.19, 0 35 M0 0 C0.14 11.2, 0.3 21.97, 0 35" 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.0419429814359944)"><path d="M0 0 C3.55 0.26, 6.63 -0.2, 16 0 M0 0 C6.1 0.17, 12.34 0.19, 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 120 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">FoxHound (Query DSL)</text></g><g stroke-linecap="round"><g transform="translate(44 250) rotate(0 -0.05888172940556302 17.5)"><path d="M0 0 C-0.43 6.97, -0.03 13.91, 0 35 M0 0 C-0.09 7.19, 0.21 14.5, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 250) rotate(0 -0.02885192736200537 9)"><path d="M0 0 C-0.48 3.93, 0.04 7.4, 0 18 M0 0 C0.18 5.18, 0.21 10.68, 0 18" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 268) rotate(0 8 0.008028334897488776)"><path d="M0 0 C3.42 0.08, 6.08 -0.03, 16 0 M0 0 C5.8 -0.04, 11.58 0.01, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(100 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-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 255) 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">Provider (MySQL / MSSQL / PostgreSQL / SQLite / MongoDB / etc.)</text></g><g stroke-linecap="round"><g transform="translate(44 285) rotate(0 -0.031902763009526325 9)"><path d="M0 0 C0.05 3.62, -0.28 7.66, 0 18 M0 0 C0.12 5.86, -0.03 11.61, 0 18" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(44 303) rotate(0 8 -0.002988470074029692)"><path d="M0 0 C3.04 -0.22, 6.52 0.2, 16 0 M0 0 C6.22 0.14, 12.65 -0.01, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(70 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-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 290) 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">Meadow Endpoints (REST Routes)</text></g><g stroke-linecap="round"><g transform="translate(74 320) rotate(0 0.14155605351463407 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 338) rotate(0 8 0.056862532361208196)"><path d="M0 0 C3.28 0.26, 6.14 0.07, 16 0 M0 0 C6.11 -0.1, 12.32 0.2, 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 39 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</text></g><g transform="translate(880 328) rotate(0 88 11)"><text x="0" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-deemphasis, #8A7F72)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">POST /1.0/Entity</text></g><g stroke-linecap="round"><g transform="translate(74 355) rotate(0 0.039797592894800005 17.5)"><path d="M0 0 C-0.17 6.99, 0.33 13.87, 0 35 M0 0 C0.04 7.35, 0.1 14.75, 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.012251801714882049)"><path d="M0 0 C2.87 -0.29, 6.28 0.37, 16 0 M0 0 C4.38 -0.03, 9.28 -0.2, 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 27.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</text></g><g transform="translate(880 363) rotate(0 106.5 11)"><text x="0" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-deemphasis, #8A7F72)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">GET /1.0/Entity/:ID</text></g><g stroke-linecap="round"><g transform="translate(74 390) rotate(0 0.08947510177624451 17.5)"><path d="M0 0 C0.19 7.11, 0.35 14.19, 0 35 M0 0 C-0.09 12.06, 0.08 23.54, 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.08512743378992127)"><path d="M0 0 C3.24 -0.22, 6.4 -0.24, 16 0 M0 0 C3.51 -0.17, 6.52 -0.2, 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 33 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">Reads</text></g><g transform="translate(880 398) rotate(0 152.5 11)"><text x="0" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-deemphasis, #8A7F72)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">GET /1.0/Entities/:Begin/:Cap</text></g><g stroke-linecap="round"><g transform="translate(74 425) rotate(0 -0.001622014512172143 17.5)"><path d="M0 0 C0.16 6.86, 0.04 14.74, 0 35 M0 0 C-0.15 9.91, -0.07 20.15, 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.08608154698552539)"><path d="M0 0 C3.23 0.35, 6.16 0.18, 16 0 M0 0 C5.85 -0.13, 11.64 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 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 39 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</text></g><g transform="translate(880 433) rotate(0 88 11)"><text x="0" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-deemphasis, #8A7F72)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">PUT /1.0/Entity</text></g><g stroke-linecap="round"><g transform="translate(74 460) rotate(0 0.053695819045266546 17.5)"><path d="M0 0 C0.46 7.39, -0.01 14.27, 0 35 M0 0 C-0.11 13.02, -0.15 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 478) rotate(0 8 0.022141383227875622)"><path d="M0 0 C3.34 -0.01, 6.79 -0.17, 16 0 M0 0 C3.98 0.12, 7.75 0.2, 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 39 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</text></g><g transform="translate(880 468) rotate(0 106.5 11)"><text x="0" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-deemphasis, #8A7F72)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">DELETE /1.0/Entity/:ID</text></g><g stroke-linecap="round"><g transform="translate(74 495) rotate(0 -0.12319202996788192 17.5)"><path d="M0 0 C-0.37 7.46, -0.49 13.94, 0 35 M0 0 C-0.09 13.94, 0.21 27.62, 0 35" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 513) rotate(0 8 0.06265606200838647)"><path d="M0 0 C3.57 0.03, 6.5 0.35, 16 0 M0 0 C4.46 0.13, 8.48 -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 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-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 500) rotate(0 33 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</text></g><g transform="translate(880 503) rotate(0 125 11)"><text x="0" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-deemphasis, #8A7F72)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">GET /1.0/Entities/Count</text></g><g stroke-linecap="round"><g transform="translate(74 530) rotate(0 -0.1408903772194421 17.5)"><path d="M0 0 C-0.43 6.68, -0.44 14.56, 0 35 M0 0 C-0.29 11.38, 0.18 23.1, 0 35" 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.01605191050725807)"><path d="M0 0 C3.46 0.21, 6.49 0.03, 16 0 M0 0 C3.28 -0.08, 6.4 -0.1, 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 39 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</text></g><g transform="translate(880 538) rotate(0 120 11)"><text x="0" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-deemphasis, #8A7F72)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">GET /1.0/Entity/Schema</text></g><g stroke-linecap="round"><g transform="translate(74 565) rotate(0 -0.12935813330556556 9)"><path d="M0 0 C-0.33 3.29, -0.42 6.96, 0 18 M0 0 C0.1 4.93, -0.17 9.47, 0 18" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(74 583) rotate(0 8 0.09438808005569399)"><path d="M0 0 C3.51 0.33, 6.42 0.41, 16 0 M0 0 C5.27 -0.15, 10.69 -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 579) 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 570) rotate(0 21.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">New</text></g><g transform="translate(880 573) rotate(0 139 11)"><text x="0" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-deemphasis, #8A7F72)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">GET /1.0/Entity/Schema/New</text></g></svg>
package/docs/README.md CHANGED
@@ -6,11 +6,11 @@ An all-in-one Fable service that turns a compiled Stricture schema into a comple
6
6
 
7
7
  Retold Data Service orchestrates several Retold modules into a unified service:
8
8
 
9
- - **[Meadow](https://github.com/stevenvelozo/meadow)** provides the data access layer and ORM
10
- - **[Meadow Endpoints](https://github.com/stevenvelozo/meadow-endpoints)** generates REST routes for every entity
11
- - **[Orator](https://github.com/stevenvelozo/orator)** serves the HTTP API via Restify
12
- - **[FoxHound](https://github.com/stevenvelozo/foxhound)** builds SQL queries from a declarative DSL
13
- - **[Stricture](https://github.com/stevenvelozo/stricture)** compiles schema definitions into the model
9
+ - **[Meadow](https://fable-retold.github.io/meadow/)** provides the data access layer and ORM
10
+ - **[Meadow Endpoints](https://fable-retold.github.io/meadow-endpoints/)** generates REST routes for every entity
11
+ - **[Orator](https://fable-retold.github.io/orator/)** serves the HTTP API via Restify
12
+ - **[FoxHound](https://fable-retold.github.io/foxhound/)** builds SQL queries from a declarative DSL
13
+ - **[Stricture](https://fable-retold.github.io/stricture/)** compiles schema definitions into the model
14
14
 
15
15
  ## Features
16
16
 
@@ -25,10 +25,10 @@ Retold Data Service orchestrates several Retold modules into a unified service:
25
25
 
26
26
  ## Related Packages
27
27
 
28
- - [meadow](https://github.com/stevenvelozo/meadow) -- Data access layer and ORM
29
- - [meadow-endpoints](https://github.com/stevenvelozo/meadow-endpoints) -- REST endpoint generation
30
- - [foxhound](https://github.com/stevenvelozo/foxhound) -- Query DSL for SQL generation
31
- - [stricture](https://github.com/stevenvelozo/stricture) -- Schema definition DDL compiler
32
- - [orator](https://github.com/stevenvelozo/orator) -- API server abstraction
33
- - [fable](https://github.com/stevenvelozo/fable) -- Application services framework
34
- - [retold-harness](https://github.com/stevenvelozo/retold-harness) -- Application harness using this service
28
+ - [meadow](https://fable-retold.github.io/meadow/) -- Data access layer and ORM
29
+ - [meadow-endpoints](https://fable-retold.github.io/meadow-endpoints/) -- REST endpoint generation
30
+ - [foxhound](https://fable-retold.github.io/foxhound/) -- Query DSL for SQL generation
31
+ - [stricture](https://fable-retold.github.io/stricture/) -- Schema definition DDL compiler
32
+ - [orator](https://fable-retold.github.io/orator/) -- API server abstraction
33
+ - [fable](https://fable-retold.github.io/fable/) -- Application services framework
34
+ - [retold-harness](https://fable-retold.github.io/retold-harness/) -- Application harness using this service
@@ -0,0 +1,18 @@
1
+ {
2
+ "Hash": "retold-data-service",
3
+ "Name": "Retold Data Service",
4
+ "Tagline": "Schema-driven data movement and comprehension",
5
+ "Palette": "ocean",
6
+ "Icon": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\" width=\"96\" height=\"96\">\n\t\t<defs>\n\t\t\t<clipPath id=\"frame-retold-data-service-filled-light\">\n\t\t\t\t<path d=\"M 48.00 2.00 L 87.84 25.00 L 87.84 71.00 L 48.00 94.00 L 8.16 71.00 L 8.16 25.00 Z\"/>\n\t\t\t</clipPath>\n\t\t</defs>\n\t\t<path d=\"M 48.00 2.00 L 87.84 25.00 L 87.84 71.00 L 48.00 94.00 L 8.16 71.00 L 8.16 25.00 Z\" fill=\"#23a6c7\"/>\n\t\t<g clip-path=\"url(#frame-retold-data-service-filled-light)\"><rect x=\"20\" y=\"20\" width=\"56\" height=\"56\" rx=\"8\" fill=\"rgba(255,255,255,0.18)\"/>\n\t\t\t\t\t<path d=\"M 48 30 L 70 48 L 48 66 L 26 48 Z\" fill=\"#e36b59\"/></g>\n\t\t<text x=\"48\" y=\"50\" text-anchor=\"middle\" dominant-baseline=\"central\"\n\t\t\tfont-family=\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\"\n\t\t\tfont-size=\"28\" font-weight=\"600\"\n\t\t\tfill=\"#ffffff\" letter-spacing=\"-1\">RDS</text>\n\t</svg>",
7
+ "IconType": "svg",
8
+ "Favicon": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\" width=\"96\" height=\"96\">\n\t\t<defs>\n\t\t\t<clipPath id=\"fav-retold-data-service-light\">\n\t\t\t\t<path d=\"M 48.00 2.00 L 87.84 25.00 L 87.84 71.00 L 48.00 94.00 L 8.16 71.00 L 8.16 25.00 Z\"/>\n\t\t\t</clipPath>\n\t\t</defs>\n\t\t<path d=\"M 48.00 2.00 L 87.84 25.00 L 87.84 71.00 L 48.00 94.00 L 8.16 71.00 L 8.16 25.00 Z\" fill=\"#23a6c7\"/>\n\t\t<g clip-path=\"url(#fav-retold-data-service-light)\"><rect x=\"16\" y=\"16\" width=\"64\" height=\"64\" rx=\"10\" fill=\"rgba(255,255,255,0.22)\"/></g>\n\t\t<text x=\"48\" y=\"50\" text-anchor=\"middle\" dominant-baseline=\"central\"\n\t\t\tfont-family=\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\"\n\t\t\tfont-size=\"60\" font-weight=\"800\"\n\t\t\tfill=\"#ffffff\" letter-spacing=\"-1\">R</text>\n\t</svg>",
9
+ "FaviconDark": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\" width=\"96\" height=\"96\">\n\t\t<defs>\n\t\t\t<clipPath id=\"fav-retold-data-service-dark\">\n\t\t\t\t<path d=\"M 48.00 2.00 L 87.84 25.00 L 87.84 71.00 L 48.00 94.00 L 8.16 71.00 L 8.16 25.00 Z\"/>\n\t\t\t</clipPath>\n\t\t</defs>\n\t\t<path d=\"M 48.00 2.00 L 87.84 25.00 L 87.84 71.00 L 48.00 94.00 L 8.16 71.00 L 8.16 25.00 Z\" fill=\"#67c6de\"/>\n\t\t<g clip-path=\"url(#fav-retold-data-service-dark)\"><rect x=\"16\" y=\"16\" width=\"64\" height=\"64\" rx=\"10\" fill=\"rgba(255,255,255,0.22)\"/></g>\n\t\t<text x=\"48\" y=\"50\" text-anchor=\"middle\" dominant-baseline=\"central\"\n\t\t\tfont-family=\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\"\n\t\t\tfont-size=\"60\" font-weight=\"800\"\n\t\t\tfill=\"#101418\" letter-spacing=\"-1\">R</text>\n\t</svg>",
10
+ "Colors": {
11
+ "Primary": "#23a6c7",
12
+ "Secondary": "#e36b59",
13
+ "PrimaryLight": "#23a6c7",
14
+ "PrimaryDark": "#67c6de",
15
+ "SecondaryLight": "#e36b59",
16
+ "SecondaryDark": "#edb3aa"
17
+ }
18
+ }
package/docs/_cover.md CHANGED
@@ -8,4 +8,4 @@
8
8
  - Direct DAL access for server-side data operations
9
9
 
10
10
  [Getting Started](#retold-data-service)
11
- [GitHub](https://github.com/stevenvelozo/retold-data-service)
11
+ [GitHub](https://github.com/fable-retold/retold-data-service)
package/docs/_topbar.md CHANGED
@@ -1,2 +1,2 @@
1
- - [GitHub](https://github.com/stevenvelozo/retold-data-service)
1
+ - [GitHub](https://github.com/fable-retold/retold-data-service)
2
2
  - [npm](https://www.npmjs.com/package/retold-data-service)
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "Name": "retold-data-service",
3
- "Version": "2.0.33",
3
+ "Version": "2.1.4",
4
4
  "Description": "Serve up a whole model!",
5
- "GeneratedAt": "2026-04-10T17:22:17.821Z",
6
- "GitCommit": "bfd3f2c"
5
+ "GeneratedAt": "2026-05-26T21:12:36.155Z",
6
+ "GitCommit": "6ee8905"
7
7
  }
@@ -12,14 +12,14 @@ Extends `fable-serviceproviderbase`. Registered as service type `'RetoldDataServ
12
12
 
13
13
  | Method | Description |
14
14
  |--------|-------------|
15
- | [constructor](api/constructor.md) | Create a new RetoldDataService instance |
16
- | [initializeService](api/initializeService.md) | Initialize the full service stack |
17
- | [stopService](api/stopService.md) | Stop the Orator web server |
18
- | [initializePersistenceEngine](api/initializePersistenceEngine.md) | Load the storage provider module |
19
- | [initializeDataEndpoints](api/initializeDataEndpoints.md) | Load model and create DAL + endpoints |
20
- | [onBeforeInitialize](api/onBeforeInitialize.md) | Pre-initialization lifecycle hook |
21
- | [onInitialize](api/onInitialize.md) | Mid-initialization lifecycle hook |
22
- | [onAfterInitialize](api/onAfterInitialize.md) | Post-initialization lifecycle hook |
15
+ | [constructor](constructor.md) | Create a new RetoldDataService instance |
16
+ | [initializeService](initializeService.md) | Initialize the full service stack |
17
+ | [stopService](stopService.md) | Stop the Orator web server |
18
+ | [initializePersistenceEngine](initializePersistenceEngine.md) | Load the storage provider module |
19
+ | [initializeDataEndpoints](initializeDataEndpoints.md) | Load model and create DAL + endpoints |
20
+ | [onBeforeInitialize](onBeforeInitialize.md) | Pre-initialization lifecycle hook |
21
+ | [onInitialize](onInitialize.md) | Mid-initialization lifecycle hook |
22
+ | [onAfterInitialize](onAfterInitialize.md) | Post-initialization lifecycle hook |
23
23
 
24
24
  ### Properties
25
25
 
@@ -4,98 +4,20 @@ Retold Data Service orchestrates several Retold modules into a unified service t
4
4
 
5
5
  ## Component Stack
6
6
 
7
- ```
8
- ┌─────────────────────────────────────────────┐
9
- │ Your Application Code │
10
- │ - Configure options │
11
- │ - Override lifecycle hooks │
12
- │ - Inject behaviors │
13
- └──────────────────┬──────────────────────────┘
14
-
15
- ┌──────────────────▼──────────────────────────┐
16
- │ Retold Data Service │
17
- │ - Loads Stricture model │
18
- │ - Creates DAL per entity │
19
- │ - Creates MeadowEndpoints per entity │
20
- │ - Manages service lifecycle │
21
- └──────────────────┬──────────────────────────┘
22
-
23
- ┌──────────────────▼──────────────────────────┐
24
- │ Orator (API Server) │
25
- │ - HTTP server via Restify │
26
- │ - Route registration │
27
- │ - Request handling │
28
- └──────────────────┬──────────────────────────┘
29
-
30
- ┌──────────────────▼──────────────────────────┐
31
- │ Meadow Endpoints (REST Layer) │
32
- │ - CRUD route handlers │
33
- │ - Behavior injection hooks │
34
- │ - Session management │
35
- │ - Authorization enforcement │
36
- └──────────────────┬──────────────────────────┘
37
-
38
- ┌──────────────────▼──────────────────────────┐
39
- │ Meadow (Data Access) │
40
- │ - Schema management │
41
- │ - Query building via FoxHound │
42
- │ - Provider-based query execution │
43
- │ - Audit stamping and soft deletes │
44
- └──────────────────┬──────────────────────────┘
45
-
46
- ┌──────────────────▼──────────────────────────┐
47
- │ Storage Provider │
48
- │ MySQL │ SQLite │ MSSQL │ ALASQL │
49
- └─────────────────────────────────────────────┘
50
- ```
7
+ <!-- bespoke diagram: edit diagrams/component-stack.mmd or .hints.json, then: npx pict-renderer-graph build ../../meadow/retold-data-service/docs -->
8
+ ![Component Stack](diagrams/component-stack.svg)
51
9
 
52
10
  ## Initialization Flow
53
11
 
54
12
  The `initializeService()` method runs an ordered sequence of asynchronous steps using Fable's Anticipate pattern:
55
13
 
56
- ```mermaid
57
- sequenceDiagram
58
- participant App as Application
59
- participant RDS as RetoldDataService
60
- participant O as Orator
61
- participant PE as PersistenceEngine
62
- participant M as Meadow
63
- participant ME as MeadowEndpoints
64
-
65
- App->>RDS: initializeService()
66
- RDS->>RDS: onBeforeInitialize()
67
- RDS->>O: startWebServer()
68
- RDS->>PE: initializePersistenceEngine()
69
- RDS->>RDS: onInitialize()
70
- RDS->>M: Load Stricture model
71
- loop Each Entity
72
- RDS->>M: loadFromPackageObject(schema)
73
- M-->>RDS: DAL instance
74
- RDS->>ME: new MeadowEndpoints(DAL)
75
- ME->>O: connectRoutes()
76
- end
77
- RDS->>RDS: onAfterInitialize()
78
- RDS-->>App: callback()
79
- ```
14
+ <!-- bespoke diagram: edit diagrams/initialization-flow.mmd or .hints.json, then: npx pict-renderer-graph build modules/meadow/retold-data-service/docs -->
15
+ ![Initialization Flow](diagrams/initialization-flow.svg)
80
16
 
81
17
  ## Component Diagram
82
18
 
83
- ```mermaid
84
- graph TD
85
- A[Application Code] --> B[RetoldDataService]
86
- B --> C[Orator + Restify]
87
- B --> D[Meadow DAL]
88
- B --> E[MeadowEndpoints]
89
- D --> F[FoxHound Query DSL]
90
- D --> G[Storage Provider]
91
- G --> H[MySQL]
92
- G --> I[SQLite]
93
- G --> J[MSSQL]
94
- G --> K[PostgreSQL]
95
- G --> L[MongoDB]
96
- E --> M[REST Routes]
97
- E --> N[Behavior Injection]
98
- ```
19
+ <!-- bespoke diagram: edit diagrams/component-diagram.mmd or .hints.json, then: npx pict-renderer-graph build modules/meadow/retold-data-service/docs -->
20
+ ![Component Diagram](diagrams/component-diagram.svg)
99
21
 
100
22
  ## How It Works
101
23