docs(m3): record open decisions blocking task breakdown

List the five locks from comparing CREATE.md to main technical docs
(categories payload, attributes shape, overlay upload, character
template source, server persistence).
This commit is contained in:
2026-09-16 21:05:15 +00:00
parent 22599c924f
commit eaf96d36e1
+16 -2
View File
@@ -402,6 +402,20 @@ Full request and response field lists on historical `main` `docs/OPENAPI.md` are
- Claiming submission-ready when required ready-set fields are still empty.
- Touching `:10880` or parking work on `m2-ds` / doc-simplification.
## Open decisions
## Open decisions (must lock before task breakdown)
None blocking the exit definition above. If store-specific term labels differ from examples in this file, the synced store lists win.
These came from comparing `CREATE.md` to the technical requirements on `main`. Do not invent Woo API shapes to fill them.
1. **`categories` on `POST /products`.** Ready set requires species plus wood-category leaf ids. The `main` CONTENT-WOO example only shows a species id in `categories[]`. Confirm: send **all** ready-set category ids (species + every wood category) as `[{"id": n}, ...]` per Woo REST product `categories`.
2. **`attributes` element shape on `POST /products`.** `main` leaves `"attributes": [ … if present … ]` without fields. Need the exact Woo REST object fields for the five locked attributes (typically attribute `id`, `options` as term names, `visible`, `variation`). Prefer a live product sample from Whidbey Wood Store or the official Woo REST product-attribute docs Ty points us at. Do not guess.
3. **Dimension-overlay PNG.** Photos-ready lineup includes the overlay copy. `main` says only `kind=inventory` images go to Woo (≤5). Confirm: **omit** the overlay from Woo upload, **include** it as an inventory image, or something else.
4. **Template `{character}`.** Default title/short/description templates need a `{character}` string. Confirm the source when `feat-*` is empty, one tag, or many (for example first feat tag name, figure term, or a dedicated field).
5. **Server persistence.** `main` OpenAPI assumes a full server slab row and status machine. This branch still centers the device draft. Confirm M3 server persistence: full slab store as on `main`, or a thinner path (Settings + taxonomy + pricing + create from an uploaded ready package) with device draft as the client source of truth until create.
Non-blocking notes (shipped M1/M2 win on this branch): fill target 90% and 800px floor (not main's 80%/1600); Vite + Svelte SPA (not SvelteKit docs); overlay draw spacing may differ from measure spacing by design.
If store-specific term labels differ from examples in this file, the synced store lists win.