package com.correx.core.artifacts.kind

/**
 * A user-declared artifact kind whose schema comes from configuration rather than
 * a compile-time Kotlin type. The declared [schema] is authoritative: content is
 * validated against it generically (see the artifact-payload validator), so an
 * [llmEmitted] config kind is checked against its declared shape, never a
 * hardcoded type check.
 */
data class ConfigArtifactKind(
    override val id: String,
    private val schema: JsonSchema,
    override val llmEmitted: Boolean = false,
) : ArtifactKind {
    override fun deriveJsonSchema(): JsonSchema = schema
}
