# Class ExpressionCompilationRequest OptimaJet.Workflow.Core.CodeActions.ExpressionCompilationRequest Provides read-only copies of expression sources and the context needed to compile them. Namespace: [OptimaJet.Workflow.Core.CodeActions](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.CodeActions/) ```csharp public sealed class ExpressionCompilationRequest ``` ## Properties `public IReadOnlyList Sources { get; }` Gets the original sources in evaluation order. Requests other than transition conditions contain one source. `public ConcatenationType? ConditionsConcatenationType { get; }` Gets the transition condition operator, or null for other expressions. `public string PreparedExpression { get; }` Gets the prepared C# body, without an asynchronous lambda wrapper. ### Remarks Prepared on first access so a compiler can reject a source before C# transformation. `public Type ResultType { get; }` Gets the result type requested by the caller. `public ExpressionCompilationPurpose Purpose { get; }` Gets the workflow feature requesting compilation. `public string SchemeCode { get; }` Gets the scheme code, or null when no scheme context is available. `public Guid? SchemeId { get; }` Gets the scheme ID, or null when no scheme context is available. `public string SchemeTenantId { get; }` Gets the scheme tenant, or null if the scheme is shared or unknown. The process tenant can be different. `public string SourceName { get; }` Gets the diagnostic name of the transition, timer, actor, or action and target parameter. `public string FunctionName { get; }` Gets the function name used in error messages. `public bool AllowLiteralFallback { get; }` Gets whether built-in compilation can fall back to a literal. External compilers decide whether to accept literals. `public IReadOnlyList References { get; }` Gets additional assembly references, excluding implicit standard references supplied by the compiler. `public IReadOnlyList Imports { get; }` Gets the namespace imports captured for this compilation. ## Remarks Sources, condition flags, and the concatenation operator describe the same expression as PreparedExpression. Scheme metadata helps identify errors; it does not grant access to data or code. The request contains no process values. [Previous ExpressionCompilationPurpose](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.CodeActions/ExpressionCompilationPurpose/) [Next ExpressionManager](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.CodeActions/ExpressionManager/)