Skip to content

Update spec according to agreement in Sprint Planning#619

Open
HenrikHL wants to merge 4 commits intomasterfrom
HenrikHL-patch-1
Open

Update spec according to agreement in Sprint Planning#619
HenrikHL wants to merge 4 commits intomasterfrom
HenrikHL-patch-1

Conversation

@HenrikHL
Copy link
Copy Markdown
Contributor

No description provided.

@HenrikHL HenrikHL requested a review from Copilot March 30, 2026 13:14
@qodo-code-review
Copy link
Copy Markdown

Review Summary by Qodo

Merge location codes into unified locations object structure

✨ Enhancement 📝 Documentation

Grey Divider

Walkthroughs

Description
• Consolidate UNLocationCodes and facilitySMDGCodes into unified locations object
• Change location items from strings to objects supporting both code types
• Allow optional UNLocationCode and/or facilitySMDGCode in each location
• Update documentation to reflect new combined location structure
Diagram
flowchart LR
  A["UNLocationCodes array<br/>string items"] --> B["locations array<br/>object items"]
  C["facilitySMDGCodes array<br/>string items"] --> B
  B --> D["UNLocationCode property<br/>optional string"]
  B --> E["facilitySMDGCode property<br/>optional string"]
Loading

Grey Divider

File Changes

1. ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml ✨ Enhancement +51/-48

Restructure location codes into unified object format

• Renamed UNLocationCodes property to locations in two subscription filter schemas
• Changed locations items type from string to object with UNLocationCode and facilitySMDGCode
 properties
• Merged separate facilitySMDGCodes array into locations object structure
• Updated descriptions to clarify that either or both location code types can be provided
• Removed string validation patterns from array level and moved to individual properties

ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown

qodo-code-review bot commented Mar 30, 2026

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider


Action required

1. Empty location object allowed🐞 Bug ✓ Correctness
Description
locations.items is a plain object schema with only properties and no constraint requiring at
least one of UNLocationCode/facilitySMDGCode, so {} is a valid array element. This creates an
undefined filter case (array is non-empty but the element has no filter keys), which can break
subscription filtering semantics across implementations.
Code

ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[R793-820]

          items:
-            type: string
-            pattern: ^[A-Z]{2}[A-Z2-9]{3}$
-            minLength: 5
-            maxLength: 5
+            type: object
            description: |
-              The UN Location code specifying where the place is located. The pattern used must be
+              It is possible to provide the `UNLocationCode`, the `facilitySMDGCode` or both when specifying the location.

-              - 2 characters for the country code using [ISO 3166-1 alpha-2](https://www.iso.org/obp/ui/#iso:pub:PUB500001:en)
-              - 3 characters to code a location within that country. Letters A-Z and numbers from 2-9 can be used
+              If multiple `UNLocationCodes` or `facilitySMDGCodes` need to be provided - then it is necessary to do this in separate `location` objects.
+            properties:
+              UNLocationCode:
+                type: string
+                pattern: ^[A-Z]{2}[A-Z2-9]{3}$
+                minLength: 5
+                maxLength: 5
+                description: |
+                  The UN Location code specifying where the place is located. The pattern used must be

-              More info can be found here: [UN/LOCODE](https://unece.org/trade/cefact/UNLOCODE-Download)
-            example: NLAMS
-        facilitySMDGCodes:
-          type: array
-          description: |
-            An array of **Facility SMDG codes** to match with this subscription filter. If the array consists of more than one item - a logical **OR** is used between the values when matching.
+                  - 2 characters for the country code using [ISO 3166-1 alpha-2](https://www.iso.org/obp/ui/#iso:pub:PUB500001:en)
+                  - 3 characters to code a location within that country. Letters A-Z and numbers from 2-9 can be used

-            If this property is empty, you will be notified for all `facilitySMDGCodes` that have changes you are authorized to see.
-          items:
-            type: string
-            maxLength: 6
-            description: |
-              The code used for identifying the specific facility. This code does not include the UN Location Code.
+                  More info can be found here: [UN/LOCODE](https://unece.org/trade/cefact/UNLOCODE-Download)
+                example: NLAMS
+              facilitySMDGCode:
+                type: string
+                maxLength: 6
+                description: |
+                  The code used for identifying the specific facility. This code does not include the UN Location Code.
+
+                  The codeList used by SMDG is the [SMDG Terminal Code List](https://smdg.org/wp-content/uploads/Codelists/Terminals/SMDG-Terminal-Code-List-v20210401.xlsx)
+                example: ACT
Evidence
Both updated schemas define locations as an array of type: object with only properties for
UNLocationCode and facilitySMDGCode and no required, minProperties, anyOf/oneOf, etc.,
meaning an empty object is valid per JSON Schema validation rules.

ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[787-820]
ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[984-1017]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`locations` items currently allow `{}` (no `UNLocationCode` and no `facilitySMDGCode`). This makes the filter behavior ambiguous and can cause incorrect matches.

### Issue Context
The schema was refactored from string arrays to an array of objects, but no validation constraint was added to ensure at least one identifying property is present.

### Fix Focus Areas
- ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[787-820]
- ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[984-1017]

### Suggested schema adjustment
For each `locations.items` object, add an `anyOf` (or `oneOf`) requiring at least one property, e.g.:
- `anyOf: [{ required: [UNLocationCode] }, { required: [facilitySMDGCode] }]`
Optionally also add `minProperties: 1` to make intent explicit.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Breaking change in 1.0.0 🐞 Bug ⚙ Maintainability
Description
The spec replaces UNLocationCodes (string array) with locations (object array) which is a
wire-format breaking change for subscription payloads. The OpenAPI info.version remains 1.0.0,
so clients relying on SemVer cannot detect that they must migrate.
Code

ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[R787-799]

+        locations:
          type: array
          description: |
-            An array of **UN Location codes** to match with this subscription filter. If the array consists of more than one item - a logical **OR** is used between the values when matching.
+            An array of **UNLocationCode and/or facilitySMDGCode combinations** to match with this subscription filter. If the array consists of more than one item - a logical **OR** is used between the objects when matching.

-            If this property is empty, you will be notified for all `UNLocationCodes` that have changes you are authorized to see.
+            If this property is empty, you will be notified for all `locations` that have changes you are authorized to see.
          items:
-            type: string
-            pattern: ^[A-Z]{2}[A-Z2-9]{3}$
-            minLength: 5
-            maxLength: 5
+            type: object
            description: |
-              The UN Location code specifying where the place is located. The pattern used must be
+              It is possible to provide the `UNLocationCode`, the `facilitySMDGCode` or both when specifying the location.

-              - 2 characters for the country code using [ISO 3166-1 alpha-2](https://www.iso.org/obp/ui/#iso:pub:PUB500001:en)
-              - 3 characters to code a location within that country. Letters A-Z and numbers from 2-9 can be used
+              If multiple `UNLocationCodes` or `facilitySMDGCodes` need to be provided - then it is necessary to do this in separate `location` objects.
+            properties:
Evidence
The diff shows a rename and type change from UNLocationCodes (array of strings) to locations
(array of objects). The spec header still declares version 1.0.0, indicating no breaking-version
bump.

ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[1-4]
ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[787-799]
ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[984-996]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
A breaking schema change was introduced (field rename + type change) while the published API version remains `1.0.0`.

### Issue Context
Existing clients built against 1.0.0 expecting `UNLocationCodes` (and/or separate facility arrays) will not conform to `locations` object arrays.

### Fix Focus Areas
- ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[1-4]
- ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[787-820]
- ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[984-1017]

### Fix options
1) **Versioning**: bump `info.version` and (ideally) the file name/path to the next appropriate SemVer major/minor.
2) **Backward compatibility**: keep `UNLocationCodes` (and previous facility filter shape) alongside `locations`, mark old fields as deprecated in description, and define precedence/interaction.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

3. Facility-only filter inconsistent🐞 Bug ⚙ Maintainability
Description
The spec states facilitySMDGCode may be provided without UNLocationCode, but an existing in-repo
facility location model documents that facilitySMDGCode does not include UNLocationCode and
requires both fields. This inconsistency can cause implementers to build incompatible
interpretations of what constitutes a valid/identifiable facility filter.
Code

ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[R795-817]

            description: |
-              The UN Location code specifying where the place is located. The pattern used must be
+              It is possible to provide the `UNLocationCode`, the `facilitySMDGCode` or both when specifying the location.

-              - 2 characters for the country code using [ISO 3166-1 alpha-2](https://www.iso.org/obp/ui/#iso:pub:PUB500001:en)
-              - 3 characters to code a location within that country. Letters A-Z and numbers from 2-9 can be used
+              If multiple `UNLocationCodes` or `facilitySMDGCodes` need to be provided - then it is necessary to do this in separate `location` objects.
+            properties:
+              UNLocationCode:
+                type: string
+                pattern: ^[A-Z]{2}[A-Z2-9]{3}$
+                minLength: 5
+                maxLength: 5
+                description: |
+                  The UN Location code specifying where the place is located. The pattern used must be

-              More info can be found here: [UN/LOCODE](https://unece.org/trade/cefact/UNLOCODE-Download)
-            example: NLAMS
-        facilitySMDGCodes:
-          type: array
-          description: |
-            An array of **Facility SMDG codes** to match with this subscription filter. If the array consists of more than one item - a logical **OR** is used between the values when matching.
+                  - 2 characters for the country code using [ISO 3166-1 alpha-2](https://www.iso.org/obp/ui/#iso:pub:PUB500001:en)
+                  - 3 characters to code a location within that country. Letters A-Z and numbers from 2-9 can be used

-            If this property is empty, you will be notified for all `facilitySMDGCodes` that have changes you are authorized to see.
-          items:
-            type: string
-            maxLength: 6
-            description: |
-              The code used for identifying the specific facility. This code does not include the UN Location Code.
+                  More info can be found here: [UN/LOCODE](https://unece.org/trade/cefact/UNLOCODE-Download)
+                example: NLAMS
+              facilitySMDGCode:
+                type: string
+                maxLength: 6
+                description: |
+                  The code used for identifying the specific facility. This code does not include the UN Location Code.
Evidence
The subscription spec explicitly allows facility-only location specification, while the shared
FacilitySMDGLocation model both documents the dependency and requires both fields, indicating
conflicting guidance within the same repo.

ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[795-817]
models/FacilitySMDGLocation.yaml[5-49]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`facilitySMDGCode` is described as usable standalone in subscription filters, but the repo’s FacilitySMDGLocation model states it does not contain the UN location and requires both. This is conflicting guidance.

### Issue Context
Either the filter intentionally supports facility-only matching, or the model’s constraint should also apply for unambiguous identification.

### Fix Focus Areas
- ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[795-820]
- ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[992-1017]
- models/FacilitySMDGLocation.yaml[5-49]

### Fix options
- If facility-only is **not** intended: update the schema and text to require `UNLocationCode` when `facilitySMDGCode` is provided.
- If facility-only **is** intended: update the FacilitySMDGLocation model/docs (or add clarifying text here) to explicitly state the matching rules and how facility codes are disambiguated without UN location.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


4. Stale field names in text🐞 Bug ⚙ Maintainability
Description
The locations description still references removed properties UNLocationCodes and
facilitySMDGCodes, and also uses inconsistent singular/plural terminology (location vs
locations). This mismatch is misleading for implementers and increases integration errors.
Code

ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[R795-799]

            description: |
-              The UN Location code specifying where the place is located. The pattern used must be
+              It is possible to provide the `UNLocationCode`, the `facilitySMDGCode` or both when specifying the location.

-              - 2 characters for the country code using [ISO 3166-1 alpha-2](https://www.iso.org/obp/ui/#iso:pub:PUB500001:en)
-              - 3 characters to code a location within that country. Letters A-Z and numbers from 2-9 can be used
+              If multiple `UNLocationCodes` or `facilitySMDGCodes` need to be provided - then it is necessary to do this in separate `location` objects.
+            properties:
Evidence
After renaming the schema property to locations, the description text still instructs users using
the old property names, which no longer exist in the schema.

ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[795-799]
ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[992-996]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
The `locations` field description still mentions `UNLocationCodes` and `facilitySMDGCodes` and inconsistent naming, which no longer matches the schema.

### Issue Context
The schema was refactored from arrays of strings to an array of objects, but the prose was not fully updated.

### Fix Focus Areas
- ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[795-799]
- ovs_hub_ntf/v1/OVS_HUB_NTF_v1.0.0.yaml[992-996]

### Suggested wording
Replace references to removed fields with something like:
- "If multiple UNLocationCode and/or facilitySMDGCode values need to be provided, provide them as separate objects in `locations`."

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the OVS Hub Notification (NTF) OpenAPI spec to align subscription location filtering with the sprint-planning agreement by allowing combined UN/LOCODE + facility SMDG code filtering.

Changes:

  • Replaced separate UNLocationCodes and facilitySMDGCodes filters with a single locations array of objects.
  • Defined locations[] objects with optional UNLocationCode and facilitySMDGCode fields to allow combinations.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

HenrikHL and others added 3 commits March 30, 2026 15:31
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 5 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

An array of **UNLocationCode and/or facilitySMDGCode combinations** to match with this subscription filter. If the array consists of more than one item - a logical **OR** is used between the objects when matching.

If this property is empty, you will be notified for all `UNLocationCodes` that have changes you are authorized to see.
If this property is empty, you will be notified for all `locations` that have changes you are authorized to see.
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

locations sets minItems: 1 but the description says that an empty property results in notifications for all locations. With minItems: 1 an empty array is invalid, so either remove minItems (to allow []) or update the wording to clarify that omitting the property (not an empty array) means ‘all’.

Suggested change
If this property is empty, you will be notified for all `locations` that have changes you are authorized to see.
If this property is omitted, you will be notified for all `locations` that have changes you are authorized to see.

Copilot uses AI. Check for mistakes.
Comment on lines +797 to +801
It is possible to provide the `UNLocationCode`, the `facilitySMDGCode` or both when specifying the location.

- 2 characters for the country code using [ISO 3166-1 alpha-2](https://www.iso.org/obp/ui/#iso:pub:PUB500001:en)
- 3 characters to code a location within that country. Letters A-Z and numbers from 2-9 can be used
If multiple `UNLocationCode` or `facilitySMDGCode` values need to be provided, then they must be specified as separate objects in the `locations` array.

More info can be found here: [UN/LOCODE](https://unece.org/trade/cefact/UNLOCODE-Download)
example: NLAMS
facilitySMDGCodes:
type: array
description: |
An array of **Facility SMDG codes** to match with this subscription filter. If the array consists of more than one item - a logical **OR** is used between the values when matching.
**Condition:** At least one of `UNLocationCode` and/or `facilitySMDGCode` **MUST** be specified, both are also allowed.
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The locations item schema is an object with no validation to ensure at least one of UNLocationCode or facilitySMDGCode is present, so {} currently satisfies the schema despite the stated condition. Consider encoding the condition with anyOf/oneOf + required (or otherwise enforcing at least one property) to prevent empty objects.

Copilot uses AI. Check for mistakes.
Comment on lines +802 to +808
properties:
UNLocationCode:
type: string
pattern: ^[A-Z]{2}[A-Z2-9]{3}$
minLength: 5
maxLength: 5
description: |
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The locations filter item repeats the same UNLocationCode/facilitySMDGCode structure already defined in #/components/schemas/Location (and again in SubscriptionBodyWithSecret). To reduce duplication and keep the two request/response schemas aligned, consider referencing a shared schema (e.g., $ref to Location or a dedicated LocationFilter).

Copilot uses AI. Check for mistakes.
Comment on lines +991 to 997
locations:
type: array
description: |
An array of **UN Location codes** to match with this subscription filter. If the array consists of more than one item - a logical **OR** is used between the values when matching.
An array of **UNLocationCode and/or facilitySMDGCode combinations** to match with this subscription filter. If the array consists of more than one item - a logical **OR** is used between the objects when matching.

If this property is empty, you will be notified for all `UNLocationCodes` that have changes you are authorized to see.
If this property is empty, you will be notified for all `locations` that have changes you are authorized to see.
items:
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

locations is defined twice (in Subscription and SubscriptionBodyWithSecret) but only the Subscription variant has minItems: 1. This inconsistency will confuse clients and tooling; align the constraints between the two schemas (and ensure they match the intended ‘empty means all’ semantics).

Copilot uses AI. Check for mistakes.
Comment on lines +787 to 792
locations:
type: array
minItems: 1
description: |
An array of **UN Location codes** to match with this subscription filter. If the array consists of more than one item - a logical **OR** is used between the values when matching.
An array of **UNLocationCode and/or facilitySMDGCode combinations** to match with this subscription filter. If the array consists of more than one item - a logical **OR** is used between the objects when matching.

Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change removes the previous UNLocationCodes / facilitySMDGCodes filter properties and replaces them with locations, which is a breaking change for the /subscriptions request and response schemas. If this spec follows SemVer (as indicated by the API-Version header examples), consider bumping the contract version and/or keeping the old fields as deprecated for backward compatibility.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +795 to +823
type: object
description: |
The UN Location code specifying where the place is located. The pattern used must be
It is possible to provide the `UNLocationCode`, the `facilitySMDGCode` or both when specifying the location.

- 2 characters for the country code using [ISO 3166-1 alpha-2](https://www.iso.org/obp/ui/#iso:pub:PUB500001:en)
- 3 characters to code a location within that country. Letters A-Z and numbers from 2-9 can be used
If multiple `UNLocationCode` or `facilitySMDGCode` values need to be provided, then they must be specified as separate objects in the `locations` array.

More info can be found here: [UN/LOCODE](https://unece.org/trade/cefact/UNLOCODE-Download)
example: NLAMS
facilitySMDGCodes:
type: array
description: |
An array of **Facility SMDG codes** to match with this subscription filter. If the array consists of more than one item - a logical **OR** is used between the values when matching.
**Condition:** At least one of `UNLocationCode` and/or `facilitySMDGCode` **MUST** be specified, both are also allowed.
properties:
UNLocationCode:
type: string
pattern: ^[A-Z]{2}[A-Z2-9]{3}$
minLength: 5
maxLength: 5
description: |
The UN Location code specifying where the place is located. The pattern used must be

If this property is empty, you will be notified for all `facilitySMDGCodes` that have changes you are authorized to see.
items:
type: string
maxLength: 6
description: |
The code used for identifying the specific facility. This code does not include the UN Location Code.
- 2 characters for the country code using [ISO 3166-1 alpha-2](https://www.iso.org/obp/ui/#iso:pub:PUB500001:en)
- 3 characters to code a location within that country. Letters A-Z and numbers from 2-9 can be used

More info can be found here: [UN/LOCODE](https://unece.org/trade/cefact/UNLOCODE-Download)
example: NLAMS
facilitySMDGCode:
type: string
maxLength: 6
description: |
The code used for identifying the specific facility. This code does not include the UN Location Code.

The codeList used by SMDG is the [SMDG Terminal Code List](https://smdg.org/wp-content/uploads/Codelists/Terminals/SMDG-Terminal-Code-List-v20210401.xlsx)
example: ACT
The codeList used by SMDG is the [SMDG Terminal Code List](https://smdg.org/wp-content/uploads/Codelists/Terminals/SMDG-Terminal-Code-List-v20210401.xlsx)
example: ACT
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The item schema for locations documents a MUST-condition (“At least one of UNLocationCode and/or facilitySMDGCode MUST be specified”), but the schema does not enforce it (an empty object {} currently validates). Add a schema constraint (e.g., anyOf with required: [UNLocationCode] / required: [facilitySMDGCode], or minProperties: 1) so tooling and validators reflect the documented requirement.

Copilot uses AI. Check for mistakes.
The codeList used by SMDG is the [SMDG Terminal Code List](https://smdg.org/wp-content/uploads/Codelists/Terminals/SMDG-Terminal-Code-List-v20210401.xlsx)
example: ACT
The codeList used by SMDG is the [SMDG Terminal Code List](https://smdg.org/wp-content/uploads/Codelists/Terminals/SMDG-Terminal-Code-List-v20210401.xlsx)
example: ACT
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above: the locations.items schema states a MUST-condition for UNLocationCode/facilitySMDGCode, but the schema does not enforce it, so {} would validate. Add an explicit constraint (anyOf/oneOf with required, or minProperties) so validators and generated clients match the documentation.

Suggested change
example: ACT
example: ACT
anyOf:
- required:
- UNLocationCode
- required:
- facilitySMDGCode

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants