Part of #10 — "Create from…" (materialize) — turn messages, lists, rows and documents into new lists/documents/posts
Shared foundation for the other Create-from sub-issues.
- Capture the real
POST /api/materialize request/response shapes against the live API before
writing DTOs (the spec only types source loosely).
- Model the four destinations (
To List, To Doc, To List & Doc, To Message) and the four
source kinds (message(s), list, rows, document/selection) as a single domain type.
- Decide the module home — a small shared
:feature:materialize, or a :core: helper consumed
by messages/lists/documents. It is called from three feature modules, so it must not live
inside any one of them.
- Subscriber gating: the menu opens for everyone; confirming on a free account routes to the
existing subscription-required handling.
Tests: MockWebServer round-trip per destination; free-account confirm → upsell, no write.
Filed from the parity review of feature/parity-wip @ 14d7795 against interlinedlist.com (OpenAPI /api/openapi.json, 233 paths) and the public help centre.
Part of #10 — "Create from…" (materialize) — turn messages, lists, rows and documents into new lists/documents/posts
Shared foundation for the other Create-from sub-issues.
POST /api/materializerequest/response shapes against the live API beforewriting DTOs (the spec only types
sourceloosely).To List,To Doc,To List & Doc,To Message) and the foursource kinds (message(s), list, rows, document/selection) as a single domain type.
:feature:materialize, or a:core:helper consumedby messages/lists/documents. It is called from three feature modules, so it must not live
inside any one of them.
existing subscription-required handling.
Tests: MockWebServer round-trip per destination; free-account confirm → upsell, no write.
Filed from the parity review of
feature/parity-wip@14d7795against interlinedlist.com (OpenAPI/api/openapi.json, 233 paths) and the public help centre.