From f3898cec4e07f50a097da740859e9edda788f2cd Mon Sep 17 00:00:00 2001
From: znerol2 <6800371+znerol2@users.noreply.github.com>
Date: Fri, 6 Nov 2026 13:52:49 +0100
Subject: [PATCH 1/4] docs(schemas): move IN-003 pin to fd5f036 and record
naming decision
The pin moves from acfa2b9 to fd5f0363b0e6a634e9d98e2c64e2d89157d74cef.
Only the examples layout changed upstream. The schema and spec text are
the same, so the mapping table is unchanged.
The README now states that IN-003 field names are authoritative and the
descriptor is a superset. It also records the answers an AMWA contributor
gave on in-003#4: the schema is permissive at this phase, identity waits
for the ledger, and the host_capabilities placement is still under
investigation upstream.
Refs dmfdeploy/dmfdeploy#746
Signed-off-by: znerol2 <6800371+znerol2@users.noreply.github.com>
---
schemas/README.md | 27 +++++++++++++++++++++------
1 file changed, 21 insertions(+), 6 deletions(-)
diff --git a/schemas/README.md b/schemas/README.md
index 744a2fb..a5d30a7 100644
--- a/schemas/README.md
+++ b/schemas/README.md
@@ -60,12 +60,20 @@ must contain.
[IN-003](https://github.com/AMWA-TV/in-003) is an AMWA draft, at `v1alpha1`,
for a media function resource manifest. The repository publishes no tags or
releases yet, so dmfdeploy tracks it at a pinned commit, currently
-[`acfa2b9`](https://github.com/AMWA-TV/in-003/tree/acfa2b9f7cb71874df2df264c746a6b72b208cab).
+[`fd5f036`](https://github.com/AMWA-TV/in-003/tree/fd5f0363b0e6a634e9d98e2c64e2d89157d74cef).
+The move from the earlier pin changed only the examples layout. The schema
+and the spec text are the same.
The descriptor stays dmfdeploy's own format. It aligns with IN-003 by field
name and through a generated export. This repository links to IN-003 and uses
its field names, and it copies none of its schema or prose.
+IN-003 field names are authoritative. The descriptor is a superset: where a
+descriptor field means the same thing as an IN-003 field, it takes the IN-003
+name and shape, and fields that only the descriptor needs are additions. For
+the decision, see
+[dmfdeploy/dmfdeploy#746](https://github.com/dmfdeploy/dmfdeploy/issues/746).
+
### Shared field names
Where a descriptor field means the same thing as an IN-003 field, it uses the
@@ -90,21 +98,28 @@ The descriptor covers areas that IN-003 doesn't cover yet:
- **Artefact identity.** The chart and every image are pinned by digest, each
release names its source commit and provenance record, and revocation comes
from a revocation list. Question 6 in
- [IN-003 issue #4](https://github.com/AMWA-TV/in-003/issues/4) asks whether
- artefact identity belongs in IN-003 or in a separate Increment.
+ [IN-003 issue #4](https://github.com/AMWA-TV/in-003/issues/4) asked whether
+ artefact identity belongs in IN-003 or in a separate Increment. An AMWA
+ contributor replied on 2026-10-28 that identity is to be defined by the
+ ledger first. The descriptor keeps its own identity fields until that
+ definition exists.
- **Software licence.** The required `software_licence` field holds the SPDX
licence of the software the package ships. IN-003 has no licence field; it
mentions a licence server only in prose. The word `licence` alone is kept
for entitlements, such as licence-server seats, which the descriptor doesn't
cover.
-- **Closed content.** The schema rejects unknown keys everywhere. Question 1
- in the same issue asks whether IN-003 intends open content.
+- **Closed content.** The schema rejects unknown keys everywhere. In
+ the same issue, an AMWA contributor answered question 1 on 2026-10-28: the
+ IN-003 schema is intentionally permissive at this phase, because
+ implementations vary. The descriptor stays closed, so it catches a
+ misspelled field name early.
- **Package-level checks.** The conformance tool checks things a schema
can't, such as version identity with `Chart.yaml`, package-key collisions
and revocation freshness. No question in issue #4 covers these yet.
Question 2 in that issue, on where `host_capabilities` belongs, affects the
-last two rows of the table.
+last two rows of the table. AMWA is still investigating it upstream, so the
+placement may move.
### Compatibility path
From e73d4dce7a8e732d732e3de1a3dfddcba5dd04e8 Mon Sep 17 00:00:00 2001
From: znerol2 <6800371+znerol2@users.noreply.github.com>
Date: Fri, 6 Nov 2026 14:02:05 +0100
Subject: [PATCH 2/4] docs(schemas): mark the IN-003 export and test as planned
State the pin move accurately: the manifest schema and overview are
unchanged, and upstream added a submodule, a PDF and a README edit.
Describe the IN-003 name-and-shape alignment as the decision that is
still to be implemented, and note in the mapping table where the shape
differs today. Keep the unknown-key question as unanswered, since the
contributor only described general permissiveness.
Refs dmfdeploy/dmfdeploy#746
Signed-off-by: znerol2 <6800371+znerol2@users.noreply.github.com>
---
schemas/README.md | 64 +++++++++++++++++++++++++++++------------------
1 file changed, 39 insertions(+), 25 deletions(-)
diff --git a/schemas/README.md b/schemas/README.md
index a5d30a7..6d015a4 100644
--- a/schemas/README.md
+++ b/schemas/README.md
@@ -61,23 +61,28 @@ must contain.
for a media function resource manifest. The repository publishes no tags or
releases yet, so dmfdeploy tracks it at a pinned commit, currently
[`fd5f036`](https://github.com/AMWA-TV/in-003/tree/fd5f0363b0e6a634e9d98e2c64e2d89157d74cef).
-The move from the earlier pin changed only the examples layout. The schema
-and the spec text are the same.
-
-The descriptor stays dmfdeploy's own format. It aligns with IN-003 by field
-name and through a generated export. This repository links to IN-003 and uses
-its field names, and it copies none of its schema or prose.
-
-IN-003 field names are authoritative. The descriptor is a superset: where a
-descriptor field means the same thing as an IN-003 field, it takes the IN-003
-name and shape, and fields that only the descriptor needs are additions. For
-the decision, see
+The move from the earlier pin leaves the manifest schema and
+`docs/Overview.md` unchanged. Upstream reorganised its examples and added a
+`lib/mxl` submodule (with `.gitmodules`), a high-level JT-DMF PDF and edits to
+its root `README.md`.
+
+The descriptor stays dmfdeploy's own format. The plan is to align it with
+IN-003 by field name and shape, and to offer a generated export. This
+repository links to IN-003 and uses its field names, and it copies none of its
+schema or prose.
+
+The decision is that IN-003 field names are authoritative. The descriptor is
+to be a superset: where a descriptor field means the same thing as an IN-003
+field, it takes the IN-003 name and shape, and fields that only the descriptor
+needs are additions. The descriptor doesn't meet this yet. Some names already
+match, and some shapes differ, as the table shows. The alignment is still to
+be implemented under
[dmfdeploy/dmfdeploy#746](https://github.com/dmfdeploy/dmfdeploy/issues/746).
### Shared field names
-Where a descriptor field means the same thing as an IN-003 field, it uses the
-IN-003 name. The IN-003 paths below are manifest paths. A port maps to an
+The descriptor fields below already use the IN-003 name for the same meaning.
+The Note column says where the shape still differs today. The IN-003 paths below are manifest paths. A port maps to an
entry in `spec.inputs` when its `direction` is `in`, and to an entry in
`spec.outputs` when it's `out`; the table writes either list as `spec.
`.
@@ -85,11 +90,11 @@ entry in `spec.inputs` when its `direction` is `in`, and to an entry in
|---|---|---|
| `ports[].geometry.frame_width` | `spec.[].format.video.frame_width` | Width in pixels. |
| `ports[].geometry.frame_height` | `spec.[].format.video.frame_height` | Height in pixels. |
-| `ports[].geometry.frame_rate` | `spec.[].format.video.frame_rate` | The descriptor holds a numerator and a denominator; IN-003 holds a string. The export converts it. |
+| `ports[].geometry.frame_rate` | `spec.[].format.video.frame_rate` | Differs in shape today: the descriptor holds a numerator and a denominator, and IN-003 holds a string. To align under #746. |
| `ports[].geometry.sample_rate` | `spec.[].format.audio.sample_rate` | Sample rate in hertz. |
| `ports[].geometry.channels` | `spec.[].format.audio.channels` | Number of audio channels. |
-| `placement.host_capabilities.cpu` | `spec.requirements.host_capabilities.cpu.features` | The descriptor lists feature names as placement hints; IN-003 puts them under requirements. |
-| `placement.host_capabilities.network` | `spec.requirements.host_capabilities.network[].features` | Feature names only. IN-003 also describes each network interface. |
+| `placement.host_capabilities.cpu` | `spec.requirements.host_capabilities.cpu.features` | Differs in shape today: the descriptor lists feature names as placement hints, and IN-003 puts them under requirements. To align under #746. |
+| `placement.host_capabilities.network` | `spec.requirements.host_capabilities.network[].features` | Differs in shape today: the descriptor holds feature names only, and IN-003 also describes each network interface. To align under #746. |
### Where the descriptor goes further
@@ -109,9 +114,12 @@ The descriptor covers areas that IN-003 doesn't cover yet:
for entitlements, such as licence-server seats, which the descriptor doesn't
cover.
- **Closed content.** The schema rejects unknown keys everywhere. In
- the same issue, an AMWA contributor answered question 1 on 2026-10-28: the
- IN-003 schema is intentionally permissive at this phase, because
- implementations vary. The descriptor stays closed, so it catches a
+ the same issue, an AMWA contributor replied to question 1 on 2026-10-28
+ that the IN-003 schema is as permissive as possible about fields and units
+ at this phase, because implementations vary. The contributor said they
+ didn't understand the question about unknown keys. We clarified that unknown
+ field names were the point and asked again on 2026-10-29. That specific
+ question is unanswered. The descriptor stays closed, so it catches a
misspelled field name early.
- **Package-level checks.** The conformance tool checks things a schema
can't, such as version identity with `Chart.yaml`, package-key collisions
@@ -123,16 +131,22 @@ placement may move.
### Compatibility path
-An IN-003 manifest is generated from the descriptor. That optional manifest
-arrives with
+Neither the IN-003 export nor the pinned-schema test exists yet. Both are
+planned.
+
+The plan is to generate an IN-003 manifest from the descriptor, including the
+frame-rate conversion that the table notes. That optional manifest is to
+arrive with
[dmfdeploy/dmfdeploy#637](https://github.com/dmfdeploy/dmfdeploy/issues/637),
together with the descriptor field that points to it and the conformance
check that compares the two. Until then the descriptor has no such field, and
the schema rejects one.
-Tests check the generated manifest against the IN-003 schema, fetched at the
-pinned commit at test time. The IN-003 schema is never vendored into this
-repository.
+
+A planned test is to check the generated manifest against the IN-003 schema,
+fetched at the pinned commit at test time. The IN-003 schema is never to be
+vendored into this repository.
When IN-003 publishes a new revision, the pin moves in a pull request that
-updates the mapping table and the export together. [dmfdeploy/dmfdeploy#746](https://github.com/dmfdeploy/dmfdeploy/issues/746)
+updates the mapping table and, once it exists, the export together.
+[dmfdeploy/dmfdeploy#746](https://github.com/dmfdeploy/dmfdeploy/issues/746)
tracks this work.
From 41ad3394f79f0465cb84f926569b83f65b823f6f Mon Sep 17 00:00:00 2001
From: znerol2 <6800371+znerol2@users.noreply.github.com>
Date: Fri, 6 Nov 2026 14:15:29 +0100
Subject: [PATCH 3/4] docs(schemas): qualify closed content and drop the
planned conversion
The schema rejects unknown keys in its fixed objects, but extension
bodies and patterned maps accept unlisted keys, so a misspelled key in an
extension body isn't caught. The README now says so.
The export plan no longer mentions a frame-rate conversion: under the
naming decision, fields that differ in shape take the IN-003 shape first,
so the export needs no conversion for them.
Refs dmfdeploy/dmfdeploy#746
Signed-off-by: znerol2 <6800371+znerol2@users.noreply.github.com>
---
schemas/README.md | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/schemas/README.md b/schemas/README.md
index 6d015a4..9fe1099 100644
--- a/schemas/README.md
+++ b/schemas/README.md
@@ -113,14 +113,18 @@ The descriptor covers areas that IN-003 doesn't cover yet:
mentions a licence server only in prose. The word `licence` alone is kept
for entitlements, such as licence-server seats, which the descriptor doesn't
cover.
-- **Closed content.** The schema rejects unknown keys everywhere. In
+- **Closed content.** The schema rejects unknown keys in its fixed objects.
+ Two places accept keys the schema doesn't list: the bodies under
+ `extensions`, which hold namespaced data of any shape except keys that name
+ policy, privilege, trust or launcher settings, and maps whose keys follow a
+ pattern. A misspelled key inside an extension body isn't caught. In
the same issue, an AMWA contributor replied to question 1 on 2026-10-28
that the IN-003 schema is as permissive as possible about fields and units
at this phase, because implementations vary. The contributor said they
didn't understand the question about unknown keys. We clarified that unknown
field names were the point and asked again on 2026-10-29. That specific
- question is unanswered. The descriptor stays closed, so it catches a
- misspelled field name early.
+ question is unanswered. The descriptor's fixed objects stay closed, so they
+ catch a misspelled field name early.
- **Package-level checks.** The conformance tool checks things a schema
can't, such as version identity with `Chart.yaml`, package-key collisions
and revocation freshness. No question in issue #4 covers these yet.
@@ -134,8 +138,11 @@ placement may move.
Neither the IN-003 export nor the pinned-schema test exists yet. Both are
planned.
-The plan is to generate an IN-003 manifest from the descriptor, including the
-frame-rate conversion that the table notes. That optional manifest is to
+The plan is to generate an IN-003 manifest from the descriptor. Fields that
+differ in shape today, such as the frame rate, are to take the IN-003 shape
+first, under
+[dmfdeploy/dmfdeploy#746](https://github.com/dmfdeploy/dmfdeploy/issues/746),
+so the export needs no conversion for them. That optional manifest is to
arrive with
[dmfdeploy/dmfdeploy#637](https://github.com/dmfdeploy/dmfdeploy/issues/637),
together with the descriptor field that points to it and the conformance
From b62baa753e37a3d036fc3089b720c20ada8a0410 Mon Sep 17 00:00:00 2001
From: znerol2 <6800371+znerol2@users.noreply.github.com>
Date: Fri, 6 Nov 2026 14:21:43 +0100
Subject: [PATCH 4/4] docs(schemas): point to the schema for which values are
open
The closed-content note listed the places that accept unlisted keys, and
the list was incomplete. It now says some values are deliberately open,
gives extension bodies as an example, and points to the schema file as
the definition.
Refs dmfdeploy/dmfdeploy#746
Signed-off-by: znerol2 <6800371+znerol2@users.noreply.github.com>
---
schemas/README.md | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/schemas/README.md b/schemas/README.md
index 9fe1099..e4cd2a8 100644
--- a/schemas/README.md
+++ b/schemas/README.md
@@ -114,10 +114,9 @@ The descriptor covers areas that IN-003 doesn't cover yet:
for entitlements, such as licence-server seats, which the descriptor doesn't
cover.
- **Closed content.** The schema rejects unknown keys in its fixed objects.
- Two places accept keys the schema doesn't list: the bodies under
- `extensions`, which hold namespaced data of any shape except keys that name
- policy, privilege, trust or launcher settings, and maps whose keys follow a
- pattern. A misspelled key inside an extension body isn't caught. In
+ Some values are deliberately open and accept keys the schema doesn't list,
+ such as extension bodies, so a misspelled key inside one of them isn't
+ caught. The schema file defines exactly which values are open. In
the same issue, an AMWA contributor replied to question 1 on 2026-10-28
that the IN-003 schema is as permissive as possible about fields and units
at this phase, because implementations vary. The contributor said they