-- frontmatter.toml --
title = "Disjunctions of Structs"
description = ""

-- text.md --
Disjunctions work for any type.

In this example we see that a `floor` of some specific house
has an exit on level 0 and 1, but not on any other floor.

-- sumstruct.cue --
// floor defines the specs of a floor in some house.
floor: {
    level:   int  // the level on which this floor resides
    hasExit: bool // is there a door to exit the house?
}

// constraints on the possible values of floor.
floor: {
    level: 0 | 1
    hasExit: true
} | {
    level: -1 | 2 | 3
    hasExit: false
}
