#
#   Imandra Inc.
#
#   speclogician/presentation/ctx.py
#

from __future__ import annotations
from pydantic import BaseModel

class RenderCtx(BaseModel):
    # ----------------------------
    # identity / filtering knobs
    # ----------------------------
    trace_id: str | None = None  # if set, render a single trace (or drilldown)

    # ----------------------------
    # global presentation toggles
    # ----------------------------
    compact: bool = False          # tighter tables/panels
    show_stats_only: bool = False  # render only summary stats (no heavy sections)
    show_code: bool = True         # include code blocks (IML, src snippets)

    show_ids: bool = False
    show_art_ids: bool = False

    show_empty_sections: bool = False
    show_recommendations: bool = True

    # ----------------------------
    # domain-model specific
    # ----------------------------
    show_base: bool = True
    show_predicates: bool = True
    show_transitions: bool = True

    # ----------------------------
    # scenario specific
    # ----------------------------
    show_scenario_conflicts: bool = True
    show_missing_components: bool = True

    # ----------------------------
    # artifacts / traces sections
    # ----------------------------
    show_traces: bool = True
    show_artifacts: bool = True