{artifactId ? 'Draft preview' : 'Follow every value to its source'}

{artifactId ? 'On this server' : 'Effective configuration'}

{artifactId ? 'Your draft composed with the other promoted configs. Saving creates an untested version.' : 'The intended file from promoted configs and the selected map. Live files and active betas may differ.'}

{#if error}{/if}

{loading ? inspection ? 'Updating preview… Showing the last completed result.' : 'Composing configuration…' : inspection ? 'Preview up to date.' : ''}

{#if !eligible.length && !loading}

{artifactId ? 'No registered servers match this scope.' : 'Register a server to inspect its configuration.'}

{:else if inspection?.reason}

{inspection.reason}

{:else if inspection}
    {#each inspection.sources as source, index}
  1. {index + 1}.{#if source.id}{label(source)} {:else}{source.name}{/if}{overriddenCount(source)} settings superseded later
  2. {/each}

Overlays apply in creation order; later overlays win for the same key. The selected map takes precedence over map rotation.

{#if promoted}

Compared with promoted settings: {changes.length} changed or added, {removed.length} removed.

{#if removed.length}
Removed settings
{/if}{/if}
{#if raw} {:else}
{#each settings as setting (setting.key)}
{ const open = event.currentTarget.open; expanded = open ? [...new Set([...expanded, setting.key])] : expanded.filter(key => key !== setting.key); }}>
{setting.key}{setting.value}
{label(setting.source)} {#if setting.history.length > 1}{setting.history.length - 1} overridden{/if}{#if promoted && previousValues.get(setting.key) !== setting.value}{previousValues.has(setting.key) ? `Changed from ${previousValues.get(setting.key)}` : 'Added by draft'}{/if}
    {#each setting.history as entry, index}
  1. {label(entry.source)}{entry.source.kind === 'map' ? 'Automatic' : `Line ${entry.line}`} · {index === setting.history.length - 1 ? 'Final value' : 'Overridden'}
    {entry.value}
  2. {/each}
{:else}

No matching settings.

{/each}

Shows set / seta assignments and map rotation. Other commands remain visible in the composed file.

{/if} {#if inspection.warnings.length}
{inspection.warnings.length} configuration {inspection.warnings.length === 1 ? 'note' : 'notes'}
{/if} {/if}