Source ({{ src_fields | length }} fields)
{% for f in src_fields %}
{{ f.name }}
{{ f.type }}
{% else %}
Ingest a schema above.
{% endfor %}
{% set pending_maps = field_mappings | selectattr('status', 'in', ['pending','needs_review']) | list %}
{% set confirmed_maps = field_mappings | selectattr('status', 'equalto', 'confirmed') | list %}
{% set rejected_maps = field_mappings | selectattr('status', 'equalto', 'rejected') | list %}
{% if confirmed_maps %}
✓ Confirmed ({{ confirmed_maps | length }})
{% for p in confirmed_maps %}
{{ p.source_field }} ({{ p.source_type }})
→
{{ p.target_field }} ({{ p.target_type }})
{{ (p.confidence * 100) | round(1) }}%
{{ p.match_method }}
{% endfor %}
{% endif %}
{% if pending_maps %}
⏳ Pending Review ({{ pending_maps | length }})
{% for p in pending_maps %}
{{ p.source_field }} ({{ p.source_type }})
→
{{ p.target_field }} ({{ p.target_type }})
{{ (p.confidence * 100) | round(1) }}%
{{ p.match_method }}
{% if p.status == 'needs_review' %}⚠ low confidence{% endif %}
{% endfor %}
{% endif %}
{% if not field_mappings %}
No field mappings yet.
{% if src_fields %}
Click ⚡ Run AI Suggest to generate mappings.
{% else %}
First ingest your source and target schemas above.
{% endif %}
{% endif %}
Generated Artifact
Target ({{ tgt_fields | length }} fields)
{% for f in tgt_fields %}
{{ f.name }}
{{ f.type }}
{% else %}
Ingest a schema above.
{% endfor %}