#path: out

-- in.cue --
#Workflow: {
	jobs: [string]: #normalJob | #reusableWorkflowCallJob

	#configuration: [...#configuration]

	#reusableWorkflowCallJob: {}

	#normalJob: {
		steps?: [...{
			run?: string
		}]

		strategy?: {
			matrix: [string]: [...#configuration]
		}
	}
}

_#job:  ((#Workflow & {}).jobs & {x: _}).x
_#step: ((_#job & {steps:                   _}).steps & [_])[0]

out: {
	jobs: {
		workflow1_job1: {
			"runs-on": "ubuntu-latest"
			steps: [
				_#step & {
					run: ""
				},
			]
		}
	}
}
-- out/self-v3/default --
jobs: {
	workflow1_job1: {
		"runs-on": "ubuntu-latest"
		steps: [STEP.#x & {
			run: ""
		}]
	}
}

//cue:path: _#step
let STEP = {
	#x: ((JOB.#x & {
		steps: _
	}).steps & [_])[0]
}

//cue:path: _#job
let JOB = {
	#x: (JOBS.#x & {
		x: _
	}).x
}

//cue:path: #Workflow.jobs
let JOBS = {
	#x: {
		[string]: NORMALJOB.#x | REUSABLEWORKFLOWCALLJOB.#x
	}
}

//cue:path: #Workflow.#normalJob
let NORMALJOB = {
	#x: {
		steps?: [...{
			run?: string
		}]
		strategy?: {
			matrix: {
				[string]: [...CONFIGURATION_1.#x]
			}
		}
	}
}

//cue:path: #Workflow.#configuration
let CONFIGURATION_1 = {
	#x: [...CONFIGURATION.#x]
}

//cue:path: #configuration
let CONFIGURATION = {
	#x: [...#x]
}

//cue:path: #reusableWorkflowCallJob
let REUSABLEWORKFLOWCALLJOB = {
	#x: {}
}
-- out/self-v3-noshare/default --
jobs: {
	workflow1_job1: {
		"runs-on": "ubuntu-latest"
		steps: [STEP.#x & {
			run: ""
		}]
	}
}

//cue:path: _#step
let STEP = {
	#x: ((JOB.#x & {
		steps: _
	}).steps & [_])[0]
}

//cue:path: _#job
let JOB = {
	#x: (JOBS.#x & {
		x: _
	}).x
}

//cue:path: #Workflow.jobs
let JOBS = {
	#x: {
		[string]: NORMALJOB.#x | REUSABLEWORKFLOWCALLJOB.#x
	}
}

//cue:path: #Workflow.#normalJob
let NORMALJOB = {
	#x: {
		steps?: [...{
			run?: string
		}]
		strategy?: {
			matrix: {
				[string]: [...CONFIGURATION_1.#x]
			}
		}
	}
}

//cue:path: #Workflow.#configuration
let CONFIGURATION_1 = {
	#x: [...CONFIGURATION.#x]
}

//cue:path: #configuration
let CONFIGURATION = {
	#x: [...#x]
}

//cue:path: #reusableWorkflowCallJob
let REUSABLEWORKFLOWCALLJOB = {
	#x: {}
}
-- out/self/default --
