func WithAttributedTo(u *url.URL) Opt {
	return func(opts *Options) {
		opts.AttributedTo = u
	}
}
WithAttributedTo sets the 'attributedTo' property on the object.
package vocab
import (
	"net/url"
	"time"
)
type Options struct {
	Context      []Context
	ID           *url.URL
	URL          []*url.URL
	To           []*url.URL
	Published    *time.Time
	StartTime    *time.Time
	EndTime      *time.Time
	Types        []Type
	CID          string
	InReplyTo    *url.URL
	Attachment   []*ObjectProperty
	AttributedTo *url.URL
	Generator    string
	ObjectPropertyOptions
	CollectionOptions
	ActivityOptions
	ActorOptions
	PublicKeyOptions
	AnchorEventOptions
}
type Opt func(opts *Options)
func NewOptions(opts ...Opt) *Options {
	options := &Options{}
	for _, opt := range opts {
		opt(options)
	}
	return options
}
func WithContext(context ...Context) Opt {
	return func(opts *Options) {
		opts.Context = context
	}
}
func WithID(id *url.URL) Opt {
	return func(opts *Options) {
		opts.ID = id
	}
}
func WithURL(u ...*url.URL) Opt {
	return func(opts *Options) {
		opts.URL = append(opts.URL, u...)
	}
}
func WithCID(cid string) Opt {
	return func(opts *Options) {
		opts.CID = cid
	}
}
func WithTo(to ...*url.URL) Opt {
	return func(opts *Options) {
		opts.To = append(opts.To, to...)
	}
}
func WithType(t ...Type) Opt {
	return func(opts *Options) {
		opts.Types = t
	}
}
func WithPublishedTime(t *time.Time) Opt {
	return func(opts *Options) {
		opts.Published = t
	}
}
func WithStartTime(t *time.Time) Opt {
	return func(opts *Options) {
		opts.StartTime = t
	}
}
func WithEndTime(t *time.Time) Opt {
	return func(opts *Options) {
		opts.EndTime = t
	}
}
func WithInReplyTo(id *url.URL) Opt {
	return func(opts *Options) {
		opts.InReplyTo = id
	}
}
func WithAttachment(obj ...*ObjectProperty) Opt {
	return func(opts *Options) {
		opts.Attachment = append(opts.Attachment, obj...)
	}
}