OptionalAllowsWhether NULL is a permitted value at rest. Distinct from IsRequired. Undefined ⇒ source did not declare; default to permissive (nullable). Honest gap rather than fabricated NOT NULL.
Default value expression (null if none).
OptionalDescriptionHuman-readable description of the field's purpose (used for sp_addextendedproperty on the column).
If FK, which source object it references (null if not a FK).
OptionalIsWhether this field is a foreign key. undefined = the source had no
opinion (see IsPrimaryKey) — distinct from an affirmed false.
OptionalIsWhether this field is part of the primary key.
undefined means the SOURCE HAD NO OPINION (a sample/list API that doesn't
report PKs) — semantically distinct from an explicit false (the source
affirmed it is NOT a PK). The persist overlay (decideBooleanOverlay)
treats undefined as no-opinion so a Declared true survives; coercing
silence to false here is the U1 bug that wiped declared PKs (the
keyless-entity root). Never write ?? false when mapping into this field.
OptionalIsWhether the field is read-only (computed, system-managed, or otherwise not user-writable). Affects whether the field is included in Create/Update operation bodies.
Whether the field must be provided when creating a new record. Semantically distinct from AllowsNull — see ExternalFieldSchema.IsRequired.
OptionalIsWhether this field is constrained as unique. Distinct from IsPrimaryKey — an object can have several unique fields (email, phone) of which only one is the PK. Both flags should be set independently when the source distinguishes them; SchemaBuilder uses this for DDL UNIQUE constraint emission.
Human-readable label.
Maximum length for string types (null if not applicable).
Field name in the source system.
Precision for numeric types (null if not applicable).
Scale for numeric types (null if not applicable).
Generic source type (e.g., "string", "integer", "datetime", "boolean").
One field/column in a source object discovered during introspection.