Canonical admitted value-space projection.
A semantic type is deliberately independent of Ash source, PostgreSQL DDL, R2RML syntax, JSON-LD syntax, Igniter patches, and ggen templates. Those are projections of this object.
Summary
Types
@type representation() ::
:builtin
| :new_type
| :custom_type
| :registry
| :composite
| :embedded
| :jsonb
| :resource
@type t() :: %AshR2RML.SemanticType{ ash_type: atom() | module(), class_iri: String.t() | nil, concept_scheme_iri: String.t() | nil, constraints: keyword() | map(), datatype_iri: String.t() | nil, id: String.t() | nil, name: atom(), postgres_type: String.t() | nil, provenance: map(), provider: atom() | nil, representation_candidates: [representation()], selected_representation: representation() | nil, semantic_kind: AshR2RML.Type.semantic_kind(), shacl_constraints: keyword() | map(), source_iri: String.t() | nil, storage_type: atom() | term() | nil }