diff --git a/encoding/jsonschema/jsonschema.go b/encoding/jsonschema/jsonschema.go
index f685c46..09e4173 100644
--- a/encoding/jsonschema/jsonschema.go
+++ b/encoding/jsonschema/jsonschema.go
@@ -33,22 +33,24 @@
 import (
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/ast"
+	"cuelang.org/go/cue/token"
 )
 
 // Extract converts JSON Schema data into an equivalent CUE representation.
 //
 // The generated CUE schema is guaranteed to deem valid any value that is
 // a valid instance of the source JSON schema.
-func Extract(data *cue.Instance, cfg *Config) (*ast.File, error) {
+func Extract(data *cue.Instance, cfg *Config) (f *ast.File, err error) {
 	d := &decoder{
 		cfg:     cfg,
 		imports: map[string]*ast.Ident{},
 	}
-	e := d.decode(data)
+
+	f = d.decode(data.Value())
 	if d.errs != nil {
 		return nil, d.errs
 	}
-	return e, nil
+	return f, nil
 }
 
 // A Config configures a JSON Schema encoding or decoding.
@@ -57,6 +59,23 @@
 
 	ID string // URL of the original source, corresponding to the $id field.
 
+	// JSON reference of location containing schema. The empty string indicates
+	// that there is a single schema at the root.
+	//
+	// Examples:
+	//  "#/"                     top-level fields are schemas.
+	//  "#/components/schemas"   the canonical OpenAPI location.
+	Root string
+
+	// Map maps the locations of schemas and definitions to a new location.
+	// References are updated accordingly.
+	//
+	// The default mapping is
+	//    {}                     {"Schema"}
+	//    {"definitions", foo}   {"Defs", strings.Title(foo)}
+	//    {"$defs", foo}         {"Defs", strings.Title(foo)}
+	Map func(pos token.Pos, path []string) ([]string, error)
+
 	// TODO: configurability to make it compatible with OpenAPI, such as
 	// - locations of definitions: #/components/schemas, for instance.
 	// - selection and definition of formats
