You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(csharp): note YAML authoring support in README
Removes the stale "YAML parsing — out of scope" entry now that the C# port
ships the YAML authoring front-end (ADR-0006). Adds the YamlDesugar / ParserYaml
files to the layout section and notes the YAML conformance runner alongside the
canonical-JSON one.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: server/csharp/README.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,16 +4,16 @@ C# implementation of the MetaObjects metadata Loader. Targets .NET 8 (C# 12).
4
4
5
5
## What it covers
6
6
7
-
-**Loader** — multi-file JSON loader with overlay merge and cross-file `extends:` resolution.
7
+
-**Loader** — multi-file JSON / YAML loader with overlay merge and cross-file `extends:` resolution.
8
8
-**Canonical serializer** — byte-identical output to the TypeScript reference (the cross-language wire format).
9
-
-**Conformance runner** — auto-discovers `fixtures/conformance/*` and runs the shared corpus as `dotnet test`. The conformance corpus is the **oracle** — when a fixture goes red the port is wrong, never the fixture.
9
+
-**YAML authoring front-end** — sigil-free attrs + `[]`-array suffix + fused-key default subtype + the D2 type-coercion guard (ADR-0006), via [YamlDotNet](https://github.com/aaubry/YamlDotNet). The cross-language interchange remains canonical JSON; YAML lowers to it.
10
+
-**Conformance runners** — auto-discover `fixtures/conformance/*` AND `fixtures/yaml-conformance/*`, both shared with the other ports (TS/Python/Java). The conformance corpora are the **oracles** — when a fixture goes red the port is wrong, never the fixture.
10
11
11
12
## What it does NOT cover (out of scope)
12
13
13
14
- Codegen (each language emits its own idiomatic per-language code; byte equivalence is not a goal at the codegen layer).
- The `dbProvider` provider — the conformance corpus uses only `metaobjects-core-types`.
16
-
- YAML parsing — the corpus is JSON only. A `MetaDataFormat.Yaml` enum value exists for source-discovery parity; the base loader throws on YAML content. The `ParseSource` seam is `protected virtual` so a future YAML port can drop in.
17
17
18
18
## Running
19
19
@@ -31,7 +31,9 @@ The test suite includes per-fixture `Lint` and `Conformance` theories over the s
31
31
-`Meta/MetaData.cs` and the concrete node classes (`MetaRoot`, `MetaObject`, `MetaField`, etc.)
32
32
-`CoreAttrSchemas.cs`, `CoreTypes.cs` — the `metaobjects-core-types` provider
0 commit comments