for example, I have a function called foo.
foo
Either foo({a: bar}) or foo({b: baz}) is valid but it cannot be foo({})
foo({a: bar})
foo({b: baz})
foo({})