-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Audit: SWE Common 3.0 JSON Schemas
Parent Issue: #16 - Phase 6: Pre-Submission Audit
Tier: 1 - OGC Official Specifications (PRIMARY) π―
Reference: https://schemas.opengis.net/sweCommon/3.0/
Priority: CRITICAL
Audit Status: β
COMPLETE
Overall Result:
Audit Date: January 26, 2026
Overall Grade:
π Audit Summary
Critical Findings
- β Required vs Optional Properties -
definitionandlabelincorrectly marked optional (should be required) - β SoftNamedProperty -
namemarked optional (should be required) - β Vector referenceFrame - Marked optional (should be required)
- β UnitReference Validation - Missing
anyOfvalidation (must have code OR href) β οΈ AllowedValues Property Names -intervalvsintervalsmismatchβ οΈ AllowedTokens Type - Missing separate interface for text/category constraints
Positive Findings β
- β All property names match JSON schemas (camelCase)
- β All component type discriminators correct
- β Nested structures properly modeled
- β Comprehensive type guards exist
- β Constraint validation implemented (Issue Audit T1.5: SWE Common 3.0 HTML SpecificationΒ #21)
- β All types properly exported
Execution Status
- JSON Schemas Downloaded
- Schema Files Reviewed
- TypeScript Interfaces Compared
- Audit Complete
- Findings Documented
- Critical Issues Identified
- Evidence Links Added
Detailed findings posted in comment below β¬οΈ
Compliance Matrix
| Component | Properties | Types | Required/Optional | Overall |
|---|---|---|---|---|
| AbstractDataComponent | β | β | β | |
| Boolean | β | β | β | |
| Text | β | β | ||
| Category | β | β | ||
| Count | β | β | β | |
| Quantity | β | β | β | |
| Time | β | β | β | |
| DataRecord | β | β | ||
| Vector | β | β | β | |
| DataArray | β | β | β | β PASS |
| DataChoice | β | β | ||
| Range Components | β | β | β |
Priority Recommendations
Priority 1: CRITICAL FIXES (Breaking Changes)
- Make
definitionandlabelrequired inAbstractDataComponent - Make
namerequired inSoftNamedProperty - Make
referenceFramerequired inVectorComponent - Fix
AllowedValuesproperty names (intervalβintervals)
Priority 2: Type Safety Improvements
- Add
AllowedTokensinterface for Text/Category constraints - Add
AllowedTimesinterface for Time constraints - Improve
UnitReferencetype to enforce code OR href - Add missing JSON Schema properties
Priority 3: Documentation
- Add JSDoc comments referencing JSON schema requirements
- Document required vs optional in interface comments
- Create migration guide for breaking changes
Implementation Strategy
Recommended: Strict Compliance (Option 1)
- Make all breaking changes in major version bump (2.0.0)
- Update all interfaces to match JSON schemas exactly
- Update test fixtures and validation logic
- Provide migration guide
See detailed findings in comment for full analysis and recommendations.
Reactions are currently unavailable