Есть такой класс DTO
data class LocalConstructionContext(
    override val estimateTypes: Set<EstimateType> = setOf(EstimateType.LOCAL_V2, EstimateType.LOCAL_CHAPTER_19),
    val meta: Meta,
    val summary: Summary,
    val sections: List<Section>,
    val parameters: Parameters,
) : ConstructionContext

data class Parameters(
    val okn: Boolean,
    val form19: Boolean = false,
    val index: Int? = null,
    val indexEquipment: Int? = null,
    val additionNumber: Int? = null,
    val additionNumberEquipment: Int? = null,
    val constructionDescription: ValueType.StringValue
)

data class Meta(
    val softName: ValueType.StringValue,
    val softVersion: ValueType.StringValue,
    val estimateNum: ValueType.StringValue,
    val estimateName: ValueType.StringValue,
    val estimateReason: ValueType.StringValue,
    val normativeName: ValueType.StringValue,
    val normativeAdditionNumber: ValueType.IntegerValue,
    val estimateTotal: EstimateTotal,
    val composerName: ValueType.StringValue,
    val verifierName: ValueType.StringValue,
    val constructionNum: ValueType.StringValue,
    val constructionName: ValueType.StringValue,
    val objectName: ValueType.StringValue,
    val priceLevelBaseYear: ValueType.IntegerValue,
    val priceLevelBaseQuarter: ValueType.IntegerValue,
    val priceLevelBaseMonth: ValueType.IntegerValue,
    val priceLevelBaseOverheadMachinist: ValueType.DecimalValue,
    val priceLevelBaseProfitMachinist: ValueType.DecimalValue,
    val priceLevelBaseDescription: ValueType.StringValue,
    val priceLevelBaseNote: ValueType.StringValue,
    val priceLevelCurYear: ValueType.IntegerValue,
    val priceLevelCurQuarter: ValueType.IntegerValue,
    val priceLevelCurMonth: ValueType.IntegerValue,
    val priceLevelCurOverheadMachinist: ValueType.DecimalValue,
    val priceLevelCurProfitMachinist: ValueType.DecimalValue,
    val priceLevelCurDescription: ValueType.StringValue,
    val priceLevelCurNote: ValueType.StringValue,
    val priceDescription: ValueType.StringValue,
)

data class EstimateTotal(
    val summary: EstimateTotalValue,
    val building: EstimateTotalValue,
    val buildingMaterial: EstimateTotalValue,
    val buildingMachinesPrice: EstimateTotalValue,
    val mounting: EstimateTotalValue,
    val mountingMaterial: EstimateTotalValue,
    val mountingMachinesPrice: EstimateTotalValue,
)

data class EstimateTotalValue(
    val base: ValueType.DecimalValue? = null,
    val current: ValueType.DecimalValue? = null,
)

data class Summary(
    val building: SummaryValue,
    val mounting: SummaryValue,
    val equipment: SummaryValue,
    val otherPrice: SummaryValue,
    val summarySalary: SummaryValue,
    val summaryLaborCost: ValueType.DecimalValue,
    val returnSummaryValue: SummaryValue,
    val totalPrice: SummaryValue,
)

data class SummaryValue(
    val base: ValueType.DecimalValue? = null,
    val current: ValueType.DecimalValue? = null,
)

data class Section(
    val code: ValueType.IntegerValue,
    val name: ValueType.StringValue,
    val comment: ValueType.StringValue,
    val position: List<Position>,
    val total: TotalData,
    val totalReturn: TotalData,
    val totalDetails: EstimateTotal
)

data class Tsn(
    val type: ValueType.ItemType,
    val num: ValueType,
    val prefix: ValueType,
    val code: ValueType,
    val comment: ValueType,
    val quantityFormula: ValueType,
    val quantityTotal: ValueType,
    val name: ValueType,
    val unit: ValueType,
    val consumptionTotal: ValueType,
    val pricePerUnitBase: ValueType,
    val coefficients: List<Coefficient>,
    val winterRise: ValueType,
    val totalBase: ValueType,
    val recountCoefficients: List<ValueType>,
    val recountCoefficientsSum: ValueType,
    val totalCurrent: ValueType,
    val workersSalary: WorkerData,
    val machineOperation: WorkerData,
    val machinistSalary: WorkerData,
    val tsn: List<Tsn> = emptyList(),
    val materialResources: WorkerData,
    val equipmentCosts: WorkerData,
    val otherCosts: WorkerData,
    val pricePerUnitCurrent: ValueType,
)

data class Position(
    val totalWork: TotalData,
    val isReturnMat: Boolean?,
    val comment: ValueType.StringValue,
    val totalEquipment: TotalData,
    val totalPosition: TotalData,
    val workersOverhead: WorkerData,
    val workersProfit: WorkerData,
    val machinistOverheadProfit: WorkerData,
    val laborCosts: WorkerData,
    val groundVolume: WorkerData,
    val groundWeight: WorkerData,
    val garbageWeight: WorkerData,
    val equipmentWeight: WorkerData,
    val tsn: List<Tsn>,
)

data class WorkerData(
    val unit: ValueType,
    val consumptionTotal: ValueType,
    val pricePerUnitBase: ValueType,
    val pricePerUnitCurrent: ValueType,
    val coefficients: List<Coefficient>,
    val winterRise: ValueType,
    val totalBase: ValueType,
    val recountCoefficients: List<ValueType>,
    val recountCoefficientsSum: ValueType,
    val totalCurrent: ValueType,
)

data class Coefficient(
    val values: List<ValueType>,
    val reason: ValueType,
    val name: ValueType
)

data class ResourceData(
    val num: ValueType? = null,
    val code: ValueType? = null,
    val name: String? = null,
    val measure: String? = null,
    val count: ValueType? = null,
    val pricePerUnit: ValueType? = null,
    val correctionFactor: ValueType? = null,
    val winterFactor: ValueType? = null,
    val totalBase: ValueType? = null,
    val recountFactor: ValueType? = null,
    val totalCurrent: ValueType? = null,
)

data class TotalData(
    val base: ValueType? = null,
    val current: ValueType? = null,
)

Необходимо создать классы dto на его основе чтобы возвращать из контроллера не все данные, а именно
data class LocalConstructionContextDto(
    val meta: MetaDto,
    val summary: SummaryDto,
    val sections: List<SectionBriefDto>,
    val parameters: ParametersDto,
)

data class MetaSummaryDto(
    val meta: MetaDto,
    val summary: SummaryDto,
)

data class SectionBriefDto(
    val id: UUID = UUID.randomUUID(),
    val code: ValueType.IntegerValue,
    val name: ValueType.StringValue,
)

Есть начало
fun LocalConstructionContext.toDto(): LocalConstructionContextDto =
    LocalConstructionContextDto(
        meta = this.meta.toDto(),
        summary = this.summary.toDto(),
        sections = this.to,
        parameters = parameters
    )

fun LocalConstructionContext.toMetaSummaryDto(): MetaSummaryDto =
    MetaSummaryDto(
        meta = this.meta.toDto(),
        summary = this.summary.toDto(),
    )

fun LocalConstructionContext.toSectionBriefDto(): List<SectionBriefDto> =
    listOf(
        SectionBriefDto(
            TODO()
        )
    )
Верно ли это и как создать функцию  toSectionBriefDto()