ocs_doc_api: Phase 5-ii — typed Table create

- CreateTable(TableSpec{insertion_point, data[row][col]}) op (append-only).
- backend add_table via Table::new(insertion_point, rows, cols) + set_cell_text
  (Table::default() pre-creates 3x3, so use Table::new for exact dims).
- executor validates non-empty rectangular grid; facade create_table.
- spec Table constructor; api_reference + binding_schema regenerated; mocks + baseline.
- Test phase5ii_create_table_from_grid (3x2 grid, non-rectangular rejected)
  -> 615 host lib + 3 consistency green. Phase 5 complete.
This commit is contained in:
Sebastian committed 2026-09-06 13:02:21 +02:00
1 parent f8ae54a351
commit 240831edcd
12 files changed
+117 -7

No files matched your search

+5 -4
View File
@@ -107,10 +107,11 @@ Phase 2b (annotations/hatch/dimension typed ops), attributes + nested traversal
`RasterImage` has coarse bounds (insertion + u·width + v·height); generic
`delete` works on all. Covered by `phase5_*` test.
- **Done (typed create):** `create_raster_image(file_path, insertion, u, v, size)`
→ `Operation::CreateRasterImage`; the host auto-registers the `ImageDefinition`
(asserted by `phase5_create_raster_image_registers_definition`). Covered by that
test. `Table`/light stay read-only `EntityView` DTOs (typed ops only where the
spec declares an action mapping).
→ `Operation::CreateRasterImage` (host auto-registers the ImageDefinition), and
`create_table(insertion_point, data[row][col])` → `Operation::CreateTable`
(non-rectangular grid → `Validation`; cells built as text). Covered by
`phase5_create_raster_image_*` and `phase5ii_create_table_*` tests. `light` stays
read-only (no meaningful geometric action).
## 🔧 Outstanding methods on supported families