classDiagram direction TB class ReferenceDatasetSource { <> +capabilities() List~SourceCapability~ +acquire(String datasetKey) ReferenceDatasetAcquisition } class SourceCapability { -String source -String operation -Set~String~ providedFields } class ProviderCallPolicy { -String policyId -String version -String source -String accountScopeRef -String environment +allows(String operation, Instant now) boolean +retryFor(String outcome) Decision } class ReferenceDatasetAcquisition { -String acquisitionId -String datasetKey -String sourceContractRef -String adapterVersion -String status -String contentDigest } class CatalogRevision { -String revisionId -String acquisitionId -String contentDigest } class RouteVersion { -String routeVersionId -String routeId -String axisDigest } class RouteStop { -String stopId -int sequence } class ValidityWindow { -Instant validFrom -Instant validTo +contains(Instant at) boolean } class RouteAxisRef { -String routeVersionId } class SourceKey { -String source -String namespace -String value } class VehicleSpecRevision { -String specRevisionId -String contentDigest } class VehicleIdentityLink { -String linkId -String verificationStatus -Instant validFrom -Instant validTo } ReferenceDatasetSource ..> SourceCapability ReferenceDatasetSource ..> ProviderCallPolicy ReferenceDatasetSource --> ReferenceDatasetAcquisition ReferenceDatasetAcquisition --> ProviderCallPolicy ReferenceDatasetAcquisition --> CatalogRevision CatalogRevision --> RouteVersion CatalogRevision --> VehicleSpecRevision RouteVersion *-- RouteStop RouteVersion *-- ValidityWindow RouteAxisRef --> RouteVersion RouteVersion --> SourceKey RouteStop --> SourceKey VehicleSpecRevision --> SourceKey VehicleSpecRevision --> ValidityWindow VehicleIdentityLink --> SourceKey VehicleIdentityLink --> VehicleSpecRevision ProviderCallPolicy ..> SourceCapability