Add non-GML validation design note#133
Open
philliphoff wants to merge 1 commit into
Open
Conversation
Documents how the ValidationRuleSet<TModel> framework extends to the five non-GML S-100 products: S-101/S-57 vector (ISO 8211) and S-102/S-104/S-111 coverage (HDF5). Covers input-model decisions (thin façade for S-101; existing typed datasets for coverage), projection-diagnostic conventions, per-spec v1 rule scope, packaging, and a V-1 to V-5 PR sequence. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Performance Gate✅ PASSED — no regressions. Threshold: 10.0%, MAD multiplier (k): 3.0, retry-zone mult: 2.0× Scenario summary
exchange-set-openIteration statistics
Spans (sum of all iterations)
Metrics
s101-portray-coldIteration statistics
Spans (sum of all iterations)
Metrics
s101-portray-warmIteration statistics
Spans (sum of all iterations)
Metrics
s101-render-warmIteration statistics
Spans (sum of all iterations)
Metrics
s102-coverageIteration statistics
Spans (sum of all iterations)
Metrics
s102-coverage-openIteration statistics
Spans (sum of all iterations)
Metrics
s102-coverage-render-largeIteration statistics
Spans (sum of all iterations)
Metrics
s124-vectorIteration statistics
Spans (sum of all iterations)
Metrics
s201-vectorIteration statistics
Spans (sum of all iterations)
Metrics
Generated by EncDotNet.S100.PerfReport gate command |
This was referenced May 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Design-only PR. Adds
docs/design/non-gml-validation.mddescribing how the existingValidationRuleSet<TModel>framework extends to the five non-GML S-100 products: S-101 / S-57 vector (ISO 8211) and S-102 / S-104 / S-111 coverage (HDF5). No production code, tests, viewer, or MCP changes.Key decisions
S101DatasetView/S101FeatureViewfaçade overS101Documentthat resolves numeric codes through the bundled FC. Rules readview.OfType("DepthArea")/feature.GetSimple("DRVAL1")instead ofcode == 42. Defers the full typed-projection (d) without locking it out.S102Dataset,S104Dataset,S111Dataset). The typed projection already exists — adding a second one would be pure ceremony. Reader-thrownS100DatasetSchemaException/S100DatasetNotSupportedExceptionget caught inValidate()and surfaced asS{nnn}-PROJ-SCHEMAfindings.S101Document, with rebadged rule ids. Gated on V-4 (S-101).GroupPathfield so per-cellRelatedFeatureIdstays spec-shaped ("/BathymetryCoverage/BathymetryCoverage.01[row,col]"). Lands in V-1.Sections
§0 scope · §1 background (GML pattern, why non-GML diverges) · §2 candidate rule categories per spec · §3 input-model decisions (vector + coverage + S-57) · §4 framework constraints + per-finding payload conventions · §5 projection-diagnostic equivalents · §6 per-spec v1 rule scope · §7 coverage-specific topics (tile iteration, time-series, NODATA, PureHDF layout) · §8 vector-specific topics (FC conformance, topology, FOID uniqueness) · §9 packaging & integration · §10 open questions · §11 sequencing · two appendices
Recommended PR sequence
BathymetryCoverage.GroupPath+ConcatReportshelper.Open questions pinned in §10
GroupPathresolution (recommendation: add field), reader-as-diagnostics rework, façade per-feature vs whole-document shape, S-101 parser warnings, lint/strict modes, MCPvalidate_all, coverage performance budget, per-cell bbox vs point rendering, S-57 rebadge mechanism.Out of scope
Tier-3 cross-dataset rules, any rule body, any framework change, any reader change, any test, viewer wiring, MCP surface, performance benchmarking.