Skip to content

Commit 7ff6998

Browse files
committed
no-mistakes(document): Updated jsonb fixture README for telemetry VO and invariant wording; no unresolved doc gaps.
1 parent 52ec9a4 commit 7ff6998

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

  • fixtures/api-contract-conformance/jsonb

‎fixtures/api-contract-conformance/jsonb/README.md‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Java `Object`, Kotlin `JsonElement`, C# `JsonDocument`); this corpus locks it
1515
in cross-port.
1616

1717
The single `Document` entity (`acme::store`, `@table="documents"`) carries an
18-
open-bag field plus three value-object columns:
18+
open-bag field plus four value-object columns:
1919

2020
| Field | Type | Notes |
2121
|------------------|----------------------------------------------------------|------------------------------------------|
@@ -25,6 +25,7 @@ open-bag field plus three value-object columns:
2525
| `primaryMarker` | `field.object @objectRef=Marker @storage=jsonb @required`| required single VO — present-null → 400 |
2626
| `optionalMarker` | `field.object @objectRef=Marker @storage=jsonb` | nullable single VO — FR-035 tristate |
2727
| `markers` | `field.object @objectRef=Marker @storage=jsonb isArray` | nullable array of VO — `[]` ≠ null |
28+
| `telemetry` | `field.object @objectRef=Telemetry @storage=jsonb` | nullable VO with required non-nullable value types — see `jsonb-value-object-required-value-types` |
2829

2930
**Why `id` is `@required`.** It is the shape every real model has — a shared
3031
`BaseEntity` declares `id` required — and the one no other api-contract entity
@@ -53,7 +54,7 @@ The `Marker` value object (`object.value`) is `{ label: field.string @required
5354
```
5455
jsonb/
5556
├── README.md # this file
56-
├── meta.json # the Document entity + Marker value object
57+
├── meta.json # the Document entity + Marker and Telemetry value objects
5758
├── seed.json # 2 seed Documents (ids 1, 2), jsonb object + VO columns
5859
└── scenarios/
5960
├── jsonb-open-bag-roundtrip.yaml # open-bag parsed-value contract
@@ -170,8 +171,9 @@ A value object whose REQUIRED members are non-nullable value types in the native
170171
(`Telemetry { capturedAt: field.timestamp @required; latitude: field.double @required; tempC:
171172
field.int }`, held by the nullable `Document.telemetry`). A port whose generated model cannot
172173
serialize or deserialize such a member answers every request that touches the owning entity
173-
with a 500 (C# 1.1.0-rc.8: a null-omission condition on a non-nullable `double` /
174-
`DateTimeOffset` made System.Text.Json throw).
174+
with a 500 (C# emitted a null-omission condition on a non-nullable `double` /
175+
`DateTimeOffset`, which System.Text.Json rejects with `InvalidOperationException`;
176+
the condition is emitted on nullable members only).
175177

176178
| Requests | What it pins |
177179
|---|---|

0 commit comments

Comments
 (0)