// Treat fields of different files as belonging to the same struct.
// This means that a closed embedding in one file should not restrict the
// fields of another.
-- in.cue --
package foo

#theme: {
	color:   string
	ctermbg: string
}
dark: #theme & {
	color:   "dark"
	ctermbg: "239"
}

light: #theme & {
	color:   "light"
	ctermbg: "254"
}

#Config: {
	console: dark | *light
}
-- box.cue --
package foo

#Config & {
	console: dark
}
-- out/compile --
--- box.cue
{
  (〈0;#Config〉 & {
    console: 〈1;dark〉
  })
}
--- in.cue
{
  #theme: {
    color: string
    ctermbg: string
  }
  dark: (〈0;#theme〉 & {
    color: "dark"
    ctermbg: "239"
  })
  light: (〈0;#theme〉 & {
    color: "light"
    ctermbg: "254"
  })
  #Config: {
    console: (〈1;dark〉|*〈1;light〉)
  }
}
