diff --git a/encoding/openapi/build.go b/encoding/openapi/build.go
index 5fee0a5..8dc1db7 100644
--- a/encoding/openapi/build.go
+++ b/encoding/openapi/build.go
@@ -101,7 +101,7 @@
 
 	// Although paths is empty for now, it makes it valid OpenAPI spec.
 
-	i, err := inst.Value().Fields()
+	i, err := inst.Value().Fields(cue.Definitions(true))
 	if err != nil {
 		return nil, err
 	}
@@ -281,7 +281,11 @@
 	switch op, a := v.Expr(); op {
 	case cue.SelectorOp:
 		field, _ := a[1].String()
-		v = b.resolve(a[0]).Lookup(field)
+		f, _ := b.resolve(a[0]).LookupField(field)
+		v = cue.Value{}
+		if !f.IsOptional {
+			v = f.Value
+		}
 	}
 	return v
 }
@@ -615,7 +619,7 @@
 	}
 
 	required := []string{}
-	for i, _ := v.Fields(cue.Optional(false), cue.Hidden(false)); i.Next(); {
+	for i, _ := v.Fields(); i.Next(); {
 		required = append(required, i.Label())
 	}
 	if len(required) > 0 {
@@ -631,7 +635,7 @@
 		properties = &OrderedMap{}
 	}
 
-	for i, _ := v.Fields(cue.Optional(true), cue.Hidden(false)); i.Next(); {
+	for i, _ := v.Fields(cue.Optional(true)); i.Next(); {
 		label := i.Label()
 		var core *builder
 		if b.core != nil {
diff --git a/encoding/openapi/openapi_test.go b/encoding/openapi/openapi_test.go
index ea634ac..56a96cc 100644
--- a/encoding/openapi/openapi_test.go
+++ b/encoding/openapi/openapi_test.go
@@ -24,6 +24,7 @@
 	"testing"
 
 	"cuelang.org/go/cue"
+	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/load"
 	"github.com/kylelemons/godebug/diff"
 )
@@ -111,12 +112,21 @@
 				return strings.Join(path, ".")
 			},
 		},
+	}, {
+		"issue131.cue",
+		"issue131.json",
+		&Generator{Info: info, SelfContained: true},
 	}}
 	for _, tc := range testCases {
 		t.Run(tc.out, func(t *testing.T) {
-			filename := filepath.Join("testdata", filepath.FromSlash(tc.in))
+			filename := filepath.FromSlash(tc.in)
 
-			inst := cue.Build(load.Instances([]string{filename}, nil))[0]
+			inst := cue.Build(load.Instances([]string{filename}, &load.Config{
+				Dir: "./testdata",
+			}))[0]
+			if inst.Err != nil {
+				t.Fatal(errors.Details(inst.Err, nil))
+			}
 
 			b, err := Gen(inst, tc.config)
 			if err != nil {
diff --git a/encoding/openapi/testdata/cue.mod b/encoding/openapi/testdata/cue.mod
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/encoding/openapi/testdata/cue.mod
diff --git a/encoding/openapi/testdata/issue131.cue b/encoding/openapi/testdata/issue131.cue
new file mode 100644
index 0000000..5a8dd88
--- /dev/null
+++ b/encoding/openapi/testdata/issue131.cue
@@ -0,0 +1,7 @@
+package ext
+
+import "example.com/blocks"
+
+Blocks :: {
+	block1: blocks.Block
+}
diff --git a/encoding/openapi/testdata/issue131.json b/encoding/openapi/testdata/issue131.json
new file mode 100644
index 0000000..1fc5e56
--- /dev/null
+++ b/encoding/openapi/testdata/issue131.json
@@ -0,0 +1,40 @@
+{
+   "openapi": "3.0.0",
+   "info": {
+      "title": "test",
+      "version": "v1"
+   },
+   "paths": {},
+   "components": {
+      "schemas": {
+         "Blocks": {
+            "type": "object",
+            "required": [
+               "block1"
+            ],
+            "properties": {
+               "block1": {
+                  "$ref": "#/components/schemas/Block"
+               }
+            }
+         },
+         "Block": {
+            "type": "object",
+            "required": [
+               "a",
+               "b"
+            ],
+            "properties": {
+               "a": {
+                  "type": "number",
+                  "exclusiveMinimum": 50
+               },
+               "b": {
+                  "type": "number",
+                  "exclusiveMaximum": 10
+               }
+            }
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/encoding/openapi/testdata/oneof.cue b/encoding/openapi/testdata/oneof.cue
index d318c50..768b442 100644
--- a/encoding/openapi/testdata/oneof.cue
+++ b/encoding/openapi/testdata/oneof.cue
@@ -1,10 +1,10 @@
-MyString: {
+MyString :: {
 	exact: string
 } | {
 	regex: string
 }
 
-MyInt: int
+MyInt :: int
 
 Foo: {
 	include: MyString
diff --git a/encoding/openapi/testdata/pkg/example.com/blocks/blocks.cue b/encoding/openapi/testdata/pkg/example.com/blocks/blocks.cue
new file mode 100644
index 0000000..fe9b8ce
--- /dev/null
+++ b/encoding/openapi/testdata/pkg/example.com/blocks/blocks.cue
@@ -0,0 +1,6 @@
+package blocks
+
+Block :: {
+	a: >50
+	b: <10
+}
