The upstream Ovrin docs describe schema tags as a structured grammar attached to Go struct fields. This defines how extraction should read, interpret, and validate each value.
Example
type Invoice struct {
Number string `ovrin:"invoice number,required"`
Total float64 `ovrin:"total amount including tax,required,min=0"`
}
Why tags matter
They connect the document semantics to the Go type in a way that can be enforced at extraction time.