►
From YouTube: GitHub Quick Reviews
Description
00:00:00 - Approved: Improve Activity API usability and OpenTelemetry integration (Part 2) https://github.com/dotnet/runtime/issues/38419#issuecomment-655054487
01:44:16 - Approved: Configuring request options in Browser WebAssembly https://github.com/dotnet/runtime/issues/34168#issuecomment-655067469
A
B
A
B
B
Device
is
used
in
implementing
open
telemetry
is
Decatur,
I
mean
just
to
prove
that,
like
like
say,
VI
is
missing
all
open
trauma
tree
scenarios
that
we
are
addressing
here.
So
this
these
changes
that
we
are
proposing
today
is
just
the
feedback
we
got
from
from
this
activity
about
how,
when,
when
the
API
is
used
in
the
telemetry
is
decay,
and
you
like
what
kind
of
scenarios
that
it's
kind
of
like
locked
or
it
has
to
it,
need
to
be
like
enhance
it.
Just
what
we
see
now
is
that
it
ends
up
in
cavity.
B
So
this
is
an
introduction.
I
mean
like
you
know,
we
can
go
to
the
list
now.
I
mean
we
can
address
every
every
point,
so
the
first
one
is
activity.
Texts,
third
context
is
one
of
the
new
types
that
we
exposed
in
Lausanne
in
previous
previews
and
activity
context.
If
you
remember
it
contains,
like
dress,
IDs
span,
ID
flags
and
state-
and
you
know
telemetry,
they
have
something.
It's
called
is
remote,
which
is
telling
if,
if
this
context
is
created
from
a
remote
parent
or
it's
or
it's
not
so
is
remote
is
not
something
new.
B
Preview
but
yeah,
so
we
adding
I'm
expecting
like
literally,
will
see
also
we
have
some
kind
of
breaking
changes,
so
we're
changing
a
couple
of
things
that
we
already
exposed
so
we'll
come
to
that,
but
so
I'm
expecting
like
you
know.
This
is
kind
of
breaking
change
from
the
previous
previews,
but
there
is
no
breaking
change
from
what
we
released
before
so.
B
D
B
This
this
actually
it's
it's
kind
of
like
you
know,
while
Hawaii
implementing
something
like
sampler
or
something
like
this.
So
we
send
the
parent
parent
context
2
to
0
I
mean
to
the
listener
and
listener
is
used
by
the
sampler
and
assembler.
Maybe
can
decide
to
take
some
decisions
according
to
that
if
the
parent
is
really
and
what
context
or
just
a
local
context,.
B
A
Okay
I
mean
we
generally
our
stands
gently
as
we
don't
just
implement
specs
why
we
generally
try
to
make
bcl
api's
that
are
self
consistent
with
the
rest
of
the
platform
first,
because
the
problem
is
one
day
we
don't
like
the
specs.
The
problem
is
that
specs
are
fundamentally
not
consistent
with
each
other
either
and
implement
more
than
one
external
protocol
or
standard
or
spec,
right
and
I.
Think
the
question
now
becomes,
if
we
do
this
over
time
like
what
happens
to
the
BCR
alright.
A
So
that's
why
I
personally
don't
care
that
they
would
call
it
as
remote.
The
question
is
just
if
I
see
is
remote
as
that
developer.
Does
that
make
sense
to
me,
but,
as
I
said,
I,
don't
have
a
better
name
for
this
either
or
like
it's
just
a
remote
reminds
me
of
remoting,
and
that
is
maybe
not
the
best
Association
here,
but.
B
Kind,
so
in
activity
class
we
have
exposed
a
process
called
kind,
which
is
this
is
already
exposed,
but
the
property
is
that
we
exposed
before
was
just
geeta,
so
there
was
no
setters
for
it
and
we
run
into
some
scenario
about
in
open
telemetry.
They
have
the
adapters
that
they
are
listening
to
the
to
the
activity
activity.
Events
like
activity
start
activity
stop,
and
they
are
listening
to
the
to
the
activities
that
creates
all
the
way
which
is
like
you
will
just
constructed
using
the
constructor
and
of
course,
I
mean
like.
B
So
all
the
activities
doesn't
have
any
kind.
That
mean,
like
the
kind
of
property
is
not
there
in
any
way
in
India,
and
they
wanted
I
mean
the
adapter
in
the
oven
telemetry.
They
wanted
to
set
the
right
kind
on
the
on
the
creative
activity
when
they
they
receive
the
event,
so
the
samplers
can
can
do
its
job.
I
mean
using
this
I
mean
using
kind
activity,
so
so
that
change
here
is
just
exposing
the
sitter
I
mean
this
is
only
changing.
This
part.
F
F
B
Don't
you
think
about,
like
you
know
if
you
use
this
data
and
you
want
to
somehow
to
send
it
to
some
other
party,
which
is
not
it's
I
mean
like
some
customized
pieces,
which
is
expect
like
to
have
this
right
kind
on
the
activity.
I'm,
not
sure
this
is
having
me
like
some
attribute
for
something
like
this
will
work
in
that
scenario,
but
yeah
I
understand
your
point.
What
what
how
this
would
be
dangerous
I
mean
to
change
the
kind
in
the
middle
I
mean
like
for
for
other
activity.
I
mean.
A
F
From
something
meaningful,
meaningful
to
something,
less
meaningful
would
break
other
consumers
like
if
you
have
Forks
two
of
them
would
prefer
internal,
and
two
of
them
would
prefer
kind
client
so
which
one
which
one
to
set
an
adapter,
the
one
that
would
break
the
first
or
the
one
that
would
break.
Second.
A
B
They
have,
they
have
a
like.
You
know,
HDTV
client,
it
will
be
like
a
client
kind.
I
mean
like
so
there
is
no
confusion
about
like
sitting
a
different,
different
values
here,
but
I'm
not
sure
about,
like
any
other
scenarios,
that
people
can
change
that,
while
while
they
can
break
some
other
parts,
yeah.
F
My
sellers
can
attract
to
stuff,
and
things
like
that
right.
So,
if
like
if
this
scenario
is
only
motivated
by
supporting
all
activities,
maybe
we
should
just
fix
those
or
me
move
this
up
right,
move
this
information.
We
are
attack
or
an
attribute
like
detected
kind.
That
exporters
would
know
how
to
consume.
Just
not
make
one
of
the
major
properties
on
activity
Mirabal
just
to
fix
that.
G
H
I
B
A
A
A
B
B
Just
listener
to
all
the
activities
so
when
an
actor
tickets
started
or
stopped
so
the
adapter
will
receive
this
event,
and
at
that
time
the
adapter
will
just
set
the
right
kind
on
the
activity.
At
that
time
and
later
the
SDK
I
mean
the
ultimate
realistic,
a
will
receive
this
activity
and
it
will
send
it
like
to
the
sampler.
For
example,
I
mean
the
sampler
could
can
use
this
kind
and
the
activity
to
this
to
decide
to
do
something
with
it.
So
this
is
how
torx
mean
like
the
halogen
are.
F
B
B
B
F
Rely
on
adapters
to
fix
things
up
in
this
activity
right,
we
would
do
that
work
somewhere
else
and
then
only
open
telemetry
would
be
able
to
consume
the
right
information
and
everyone
else
would
get
internals
forever,
but
I
think
if
we
scroll
back
to
just
kind
setting
the
correct
kind
on
activities
is
not
a
break
and
changed
because
the
property
has
never
existed.
So
it's
really
against.
We
can
set
it
even
on
the
existing.
It
should
be
client
or
exponet
activities.
It.
A
B
Not
the
listener
I
mean
whoever
creates
the
activity
is
the
one
which
is
what
she's
decided
about
it.
So
the
way
it
works
about
that,
if
you
want
to
create
a
new
activities
in
the
memorial,
so
you
called
activity,
source,
dot,
start
activity
and
one
of
the
parameters
you
pass
is
is
the
kind
so
when
you,
when
we
creates
activity,
so
we
will
create
it
with
the
with
the
right
kinds
that
passed
to
us
and
later
anybody
can
use
this
kind
of
activity.
I
mean
kind
property
to
do
whatever
you
want.
B
To
support
the
old
way
or
house
activities
get
created
before
I
mean
like
if
somebody
created
activity
using
the
constructor,
which
is
they
don't
have
any
chance
of
any
way
to
save
the
kind
at
all.
So
if
somebody
got
any
activity
created
all
the
way
see,
they
always
have
the
kind
set
to
internal.
So.
E
A
B
To
use
the
constructor
so
one
that
one
example
of
it
I
mean
like
like
today,
I
mean
like
why
an
activity
source.
Why
we
start
activity
we
just
create
and
start
activity
was
in
the
same
time.
So
if
you
want
to
just
to
create
activity
and
not
starting
it,
so
the
constructor
would
be
the
way
to
do
that.
E
Okay,
so
a
construct
I
mean
like
really.
This
is
the
like.
Maybe
it
would
make
sense
as
an
inert
e
if
that
compiler
feature
was
in
a
supported
language
version,
but
it's
not
and
so
like,
and
it
only
might
make
sense,
but
really
it
seems
like
you're,
either
missing
a
constructor
parameter
or
the
factory
method.
That
is
currently
the
only
thing
setting.
It
should
be
the
only
way
to
build
it,
but
the
you
have
two
ways
of
building
something
and
they
don't.
They
have
a
disparity.
F
The
other
thing
is,
it
seems
like
this
is
a
tiny
part
of
the
conversation
of
bringing
activities
we
produce
into
the
new
ecosystem
we
created
for
the
new
listeners
and
the
open,
telemetry
stuff
so
like
this
might
fix
one
issue
that
we
found,
but
how
many
issues
haven't
we
found
and
I
would?
Rather
it
get
some
strategy
around
dead,
then
start
fixing
this
corner
cases
that
we
discover
one
by
one,
yeah.
A
Also,
like
I
mean
to
be
clear,
activity
exists
since
don't
accord
all
right,
so
that
so
does
the
constructor
right,
but
I
mean
there's
no
reason
why
we
should,
but
we
couldn't
add
a
new
constructor.
Overloaded
takes
an
activity
kind
in,
for
example
right.
So
that
seems
like
like
if
people
use
constructors
today,
that
seems
less
problematic
to
me
to
tell
them.
You
had
to
use
the
overload
to
pass
on
the
activity
kind
than
making
the
kind
settable
on
the
on
the
activity,
because.
A
B
You
can
ask
them
about
what
they
think
so
see
you
Riley
I
mean
like
we,
we
are
discussing
about
exposing
the
activity,
good
kind
of
set
up
property,
property,
property
and
I.
Think
Bob
will
have
saying
that,
like
maybe
we
can
just
use
some
attribute
or
something
to
work
around
this,
because
this
is
needed
only
for
up
compact
I
mean
for
all
the
compact
activity,
and
it's
not
really
useful
for
for
the.
A
B
A
A
J
Yeah
I
understand
so
may
understand.
What's
the
alternative
approach
like
having
additional
layer
similar
like
Howie,
how
we
have
the
like
I
remember,
we
have
some
string
information
in
the
activity
as
well,
where
we
can
update
the
name
and-
and
we
introduced
think
of
this
play
name
something
like
that.
So
this
the
same
thing
works
going
to
add.
B
The
only
way
to
have
the
right
kind,
ons
activity
is
why,
during
you,
what
why
you
are
creating
the
activity
itself,
the
only
chance
you
set
the
car
yeah,
so
the
alternative
I
mean,
like
you,
know,
one
of
the
bubbles
I
just
use
some
like
kind
of
attribute
or
tags
on
the
activity
to
say
to
save
the
kind
and
later
you
can
consume
this
tag.
Instead,
yep.
E
I
mean
two
things
that
seem
plausible
to
me
would
be
either
from
the
the
bucket
of
tags.
You
figure
out
if
it
has
the
default
value,
which
would
need
to
be
something
different
than
something
it
can
be
explicitly
set
to,
but
if
it
has
the
default
value,
then
you'll
go
find
it
based
on
a
tag
and
maybe
remember
it
or
not.
I,
don't
know
if
your
tags
are
mutable.
The
other
would
be
that
whatever
the
default
value
is
that
the
setter
only
works.
E
J
See
in
this
way,
it
sounds
like
we're
trying
to
having
like
have
this
mechanism
just
for
the
internal
work
round,
and
it's
not
something
we'd
like
to
expose
to
external
customers,
or
at
least
telling
them
like
this
is
a
way
they
should
use
on
the
other
side
by
making
this
a
public
like
a
decide
method.
It's
it's
more
like
we're
we're
giving
the
recommendation
for
customers
if
you
have
legacy
activity-
and
you
also
need
this
feature.
This
is
the
right
way
for
you
to
do
so.
J
F
F
Ok,
I
think
we
like
for
a
new
customer
I,
don't
think
we
should
advertise
this
feature
for
new
customers
and
users
internally
to
enable
collecting
from
old
I
spinel
watche
framework
and
then
for
custom
for
the
new
customers
just
tell
them
to
use
new
style
of
activity
and
where
they
can
start
kind.
The
way
we
internet
it
visit.
H
Yeah,
so
that
makes
perfect
sense.
This
is
only
an
issue
for
like
all
those
libraries
which
are
instrumental
using
the
old
way
for
any
anyone
who
is
onboarding
through
the
activities
or
slash
activity,
then
they
would
be
setting
it
in
the
intended
way,
like
you
said,
but
we
asked
for
this
to
be
suitable
only
for
handling
the
legacy
scenarios,
but
if
there
is
a
way
around
it,
then
I'm,
fine
with
that,
but
I'm
not
yet
clear.
What
is
that
way
around
so.
J
J
Yeah,
so
if,
if
there's
a
third-party
customer,
they
have
the
legacy,
libraries
that
is
instrument
eating
the
old
activity
by
making
this
gut
set
well,
basically
giving
them
the
message
that
they
can
use
this
method
to
to
move
forward.
We
use
a
something
like
a
custom
property
or
a
hidden
tag,
basically
retain
the
customers.
This
is
not
the
official
supported
path
and
you
have
to
renew
your
library.
F
H
Yes,
that
part
I
understood.
So
my
question
was
how
about
exporters
like
because
exporters
expect
the
kind
to
be
coming
from
activity
dot
kind.
They
don't
really
know
how
the
activity
was
generated.
So
we
use
some
special
methods
like
activity,
dot,
get
kind
and
internally
we
figure
it
out
either
from
tags
or
the
actual
kind
itself.
A
H
B
So
we
could
like
I'm,
not
necessarily
recommending
that,
but
we
could
in
internally
I
mean
the
implementation.
We
will
expose
the
setter
as
I'm
proposing
it,
but
we
allow
the
setting
the
setter
will
be
allowed
only
if
you
created
all
the
way
activities,
but
if
you
created
it,
then
it
was
a
new
way.
We
would
not
love
that
well.
D
E
Okay,
I
think
making
a
simian
it
only
property
is
reasonable.
Essentially
what
you
want
in
the
property
setter
is
in
addition
to
setting
the
field.
It
sets
another
boolean
saying
whether
the
value
is
real
or
not,
and
if
it
was
set
via
the
center,
which,
assuming
it's
either,
whether
it's
public
or
internal.
If,
once
the
values
been
set
via
the
setter,
you
don't
search
for
the
tag
anymore,
but
if
the
setter
had
never
been
called,
then
you'll
search
for
the
tag.
B
A
I
still
struggle
of
this
notion
of
like
existing
customers,
because
I
mean
if
we,
if
you
have
an
existing
customer,
we
asked
him
to
call
the
setter.
Then
why?
Wouldn't
that
existing
customer
who
can
call
the
setter
also
construct
the
activity
in
a
different
way?
That's
the
thing
I
just
don't
understand
like
we
asked
them
to
change
code,
regardless
right,
I,.
E
A
E
I
mean:
would
this
be
better
solved
if
activity
kind
right
now,
it's
zero
value
is
internal
which
has
meaning
if
we
inserted
a
different
zero
value
which
is
unknown,
and
then
it
would
be
up
to
the
consumer
that
if
activity
kind
comes
back
as
unknown,
they
need
to
now
figure
out
what
to
do
about
that.
Like
you're
telling
them
no
activity
kind
was
provided.
H
E
But
this
activity
class
apparently
predates
our
notion
of
integrating
with
open
telemetry.
So
we
have
to
deal
with
the
fact
that
we
have
a
thing
that
predates
open,
telemetry
the
create
from
activity
if
it
has
a
defaulted
parameter
that
can
certainly
default
to
internal,
but
this
type
doesn't
represent
an
open
telemetry
activity.
It's
it
represents
old,
stuff,
plus
open
limit
reactivity.
Now
you
have
that
problem.
B
F
Quick
question
I
know
we
have
to
style
of
diagnostic
source
methods,
some
of
them
produce
activities,
and
some
we
just
get
a
callback
Kim.
Instead
of
trying
to
adopt
an
existing
activity
that
old
code
produced,
can
we
subscribe
to
the
callback
that
doesn't
create
an
activity
and
create
a
new
style
of
activity
on
our
own?
F
I
B
F
H
B
H
H
A
E
I
would
recommend
the
design
that
is
not
openly
mutable.
So
if
you
need
this
public
setter,
then
it
would
need
to
understand
you've
already
started.
The
active
you've
already
done
things
with
the
activity
it
shouldn't
allow
this
to
change
anymore
whatever
that
means,
and
that
would
be
my
recommendation.
B
A
I
think
the
I
think
the
the
I
mean
having
a
setter
the
base.
It
blows
up
with
like
too
late
to
change
exception.
Kind
of
thing
right
like
that
seems
unfortunate,
but
it
is
the
thing:
that's
workable,
I
think
the
primary
concern
from
proble
is
that
you
have
an
activity
flowing
through
the
system
and
then
all
of
the
sudden,
very
late
in
the
game.
Somebody
decides
to
change
the
kind,
but
now
you
have
like
half
the
information
with
the
old
kind,
half
info
of
the
new
kind
right.
That
seems
bad
good.
B
So
today,
Authority
have
some
things
called
tags,
which
is
a
key
value,
bears
from
string
to
string
and
in
open
telemetry.
They
have
exactly
the
same
concept
it's
called
attribute,
but
the
difference
is
they
can
map
from
string
key
to
any
kind
of
object.
All
the
different
kind
of
options
like
it
can
be
in
numerix.
It
can
be
poly
and
can
be
arranged.
It
can
be.
Something
else
is
not
it.
It's
not
necessarily
to
be
string
daddy.
So
the
proposal
here
is
like
we
are
exposing
a
new
way.
B
B
B
F
F
But
imagine
they
add,
like
tags
with
objects,
properties
that
would
return
string
to
object
like
I
done.
What
I'll
tell
you
might
worry.
My
worry
is
that,
like
basically
tags
is
one
of
the
most
useful
things
you
do
with
activity.
You
attach
nice
information
to
it
and
make
it
available
to
all
the
consumers.
F
Now
we
are
working
our
main
API
and
considering
our
convoluted
absolution
absolution
story,
it's
slightly
scary
and
considering
main
thing
that
customers
use
is
the
bad
method
and
we
can
fix
that
by
adding
another
overload
and
we
can
figure
out
how
to
do
an
iteration
in
the
way
that
it
works.
So
I'm
slightly
worried
about
14
everything
just
to
get
object,
boilers.
A
Your
I
agree
with
that.
My
problem
is
I.
Don't
think
there
is
an
easy
way
to
avoid
that,
because
you
know
adding
an
overload
for
air
tag.
The
tags
object
would
be
fine,
but
then
the
question
is:
what
do
you
do
on
the
outside,
and
so
you
would
at
least
have
something
else
like
tags,
tags,
typed
or
something
right
or
you
know,
tag
objects
or
something
that
is.
You
know
parallel
to
the
text
that
returns,
91
will
have
key
value
pair
right
now
and
so.
C
B
As
the
other
other
thing,
I
want
to
point
out,
if
we
have
overload
like
attacks,
approaches,
take
object,
so
open
telemetry,
specs
define
the
way
to
add
new
attribute
or
the
new
tags.
It's
not
the
same
ways
that
we
used
to
add
the
tags,
for
example,
about,
like
you
know,
they
are
saying
that
if
you,
if
you
add,
if
you
add
a
new
attribute
which
is
with
with
with
the
keys
that
it's
already
added
before
so
you
update
the
vendor,
not
adding
a
new
one.
B
A
I
think
that's
yeah,
that's
the
thing.
I
agree
with
tip
the
trouble
is
and
I
think
that's
something
we
probably
need
to
look
into
is
like
there's.
Also
this
problem
of
this
hot
pregnant
state
right
away.
You
kind
of
merge
the
concepts,
but
then
you
get
broken
by
subtleties
that
you
didn't
expect
so,
for
example,
would
be
very
bad
if
add
tag
would
now
suddenly
also
override
and
not
just
add
and
throw
an
exception
at
the
key
already
exists.
So
in
that
case
you
would
have
to
at
least
add
settings.
C
A
C
B
A
That's
the
thing
that
we
have
received
this
feedback
multiple
times
and
it
seems
like
this
is
not
necessarily
helping
this,
but
it
adds
one
more
concept
to
a
type
that
already
is
not
necessarily
super
easy
to
use,
and
then
the
question
really
becomes
in
the
long
run
like.
Is
this
helping
or
hurting
right?
A
Because
you're
also
like,
as
you
said,
you
already
say,
attributes
is
a
super
set
of
tags,
so
you
basically
have
to
round
trip
those
within
that
as
well
and
now
the
question
is:
is
this
is:
is
the
result
understandable
right
or
are
we?
Are
we
trying
like
I'll,
be
adding
too
many
concepts
that
this
type
is
not
the
super
convoluted
thing
where
it
neither
works
as
ABC
outside
nor
as
an
open,
telemetry
equivalent
right?
That's
kind
of
my
concern
that
we
did
we
bolt
on
too
many
things
where
it
becomes
hard
to
understand
and
I'm.
A
B
A
Yeah
yeah,
but
you,
but
if
you
rephrase
it
like
this,
but
if
you
say
our
problem
is
the
tags
are
only
strings,
then
I
think
the
solution
to
that
would,
and
you
know
the
other
thing,
is
you
only
support
ad,
not
sad,
I,
think
in
that
sense
the
the
fix
for
that
would
be.
We
wouldn't
introduce
a
new
concept.
We
would
just
add
overloads
to
the
existing
concept
right.
The
only
reason
why
we
have
now
attributes
is
because
open
telemetry
happen
to
call
it
attributes
as
well
all
right.
Yes,
so
that's.
A
A
B
F
Few
more
concepts
like
it's
one,
less
concept
in
the
area
where
we
have
we
already
have
too
many
and
like
it's
and
one
more,
is
50%
more
and,
as
FEMA
said,
this
step
is
hard
to
use
already
so
adding
like
knowing
at
least
between
the
tags
and
baggage.
There
was
a
real
difference.
One
and
you
better
understand
it
before
you
use
the
type
right
or
you'll
waste,
all
your
network
bandwidth
transferring
stuff
around,
but
between
tags
and
attributes.
F
The
difference
is
so
minor
and
finicky
and
tricky
that
it's
not
worth
having
a
concept
for
that
and
considering
most
people
would
only
create
instances
of
activity
and
set
values
and
only
we're
very
rare.
We
rarely
consume
them.
We
can
even
create
a
method
in
numerous
tags
and
explorers
would
use
it
and
that's
fine,
but
90%
of
our
customer
base,
who
add
tags
wouldn't
be
affected
at
all.
I.
A
Mean
the
other
questions
like
how
common
are
tags
being
used
for
they
do
if
they're
one
of
the
most
popular
things
on
this
type,
you're
basically
swimming
against
the
mainstream,
but
if
it's
very
rarely
used
and
I,
don't
think
it
matters.
You
could
just
do
one
of
the
others.
We
can
either
do
what
you
know
Pablo
suggests
so
that
we
can
literally
just
obsolete
the
two
properties.
A
Sorry,
the
property
and
the
method,
and
then
hide
them
and
say
exhibit
II
never
had
but
like
the
volume
of
hiding
is
that
hiding
only
really
works
if
the
thing
is
really
used.
If
the
thing
is
super
popular,
then
the
problem
isn't
the
fact
that
it's
an
intelligence.
The
problem
is
that
everybody
has
to
update
their
code
base.
A
But
if
you
don't
obsolete
it,
then
the
problem
is,
you
do
basically
permanently
present
people
with
theirs
tags
and
there's
attributes
and
I.
Think
that's
and
then
you
would
tell
people
like.
Well,
you
probably
don't
want
to
use
tags
ever.
You
probably
only
want
to
use
attributes,
and
then
we
are
basically
back
to
square
one
where,
in
order
to
really
gives
us
guidance
across
you
kind
of
have
to
obsolete
the
thing.
B
A
Yeah
I
think
what
I
would
probably
do
is
I
would
I
would
do
I
would
address,
I
would
add
it
and
I
would
basically
add
an
overload
to
add
tag
that
takes
object.
I
would
add,
a
new
method
called
set
tag
that
it
gives
you
a
key
and
object
and
I
would
add
a
new
property
called
I,
don't
know,
tag
objects
or
something
that
gives
you
back
an
ienumerable
of
key
value,
pair
of
string,
comma
object
and
then
obsolete
the
one
that
will
trans
you
just
the
strings.
F
A
A
A
H
H
Mean
I
don't
have
objection
as
long
as
we
have
a
way
to
set
tag
and
retrieve
all
the
tags
set.
If
so,
so,
this
is
very
much.
What
do
you,
what
we
originally
proposed?
We
just
changed
it
to
attribute
somewhere
in
the
middle,
so
we
were
okay
with
the
original
1s.
Also,
okay,
fine,
sorry
Riley!
You
were
saying
something:
yeah.
B
J
C
J
B
So
the
next
one
is
is
regarding
the
as,
as
we
see,
I
mean
like
activities
supporting
tags
or
attributes
and
ultimately,
as
I
mentioned,
define
the
ways
that
you
should.
You
should
have
that
you
collection
created
like
it
has
to
be
in
order.
If
you
sit
and
you
attribute,
you
have
to
overwrite
the
old
one
and
they
have
also
extra
thing
about
like.
B
If
you
send
a
lot
value,
it
will
remove
the
entry
from
the
attributes
and
the
attributes
get
used
in
other
different
places
like
in
in
length
activity
link
and
it's
used
in
activity
event
so
and
both
activity
link
and
activity
event.
While
you
constructed
it,
you
blessings
attributes
to
it.
So
we
are
just
proposing
to
have
a
new
type
collection
type
for
for
zetrov
use
which
is
can
conform
to
the.
What
joven
intimate
respects
is
recommending.
A
B
B
F
B
F
I
think
it
might
be
like
it
might
be
a
leftover
of
some
regular
implementation
like
I'm,
not
sure
how
dictionaries
are
implemented
in
Java,
but
I
suspect
that,
like
adding
an
item,
would
now
might
be
the
way
to
remove
the
key
or
something
like
that.
So
I'm,
like
as
a
consumer
of
the
library
if
I
want
to
I,
want
to
have
some
final
set
of
attributes
right,
yeah
and
I.
F
B
C
F
The
time
when
I
create
this
list
of
activities,
it's
all
done
in
a
single
place
in
code.
It's
rarely
a
thing
that,
like
goes
through
five
different
layers
of
system
to
collect
weathers
right,
so
I.
What
I
imagine
myself
doing
is
I,
have
a
method.
I
have
couple
values,
I
put
them
into
a
list,
and
that's
it
I,
don't
do
some
crazy,
complicated
calculations
to
figure
out
the
values?
B
A
My
I
mean
my
question
is
like:
why
do
we
need
the
collection
in
general
like
it
seems
like
the
pattern
that
we
have
on
activity?
Is
that
there
are
methods,
and
then
it
is
basically
just
a
way
to
retrieve
the
existing
items
as
an
idea
mobile.
So
it
seems
we're
getting
away
with
not
having
the
notion.
B
B
B
C
B
C
J
B
J
A
If
I
can
adjust
the
order,
dictionary
or
ticket
away
like
this
I
mean
we
do
have
that
already
right,
I
mean
in
the
sense
like
they
already
are
kind
of
I
mean
the
I
mean.
My
first
question
is
what
what
semantics
do
we
have?
Do
we,
the
kind
the
same
key
exists
multiple
times,
because
if
so,
then
it
doesn't
even
work
as
a
dictionary
right.
A
J
A
B
A
So
it'll
give
you
the
same
order
as
enumerable
right,
because
well
the
interface
doesn't
specify
it.
So,
yes,
in
principle,
you
could
imagine,
there's
somebody
in
front
of
the
dictionary
that
does
that
right,
I
know
also
doesn't
make
any
guarantees
on
ordering
either
it
depends
on
what
implementation
you
pass
to
it
right,
if
you
like,
if
you
make
it
by
an
array,
then.
G
A
Yeah
I
mean
like
that's:
that's
why
I'm
Jenny
I'm
not
opposed
to
having
a
custom
connection
type
that
you
know,
makes
guarantees
about
order
and
other
stuff,
but,
like
hey
I
will
say
to
me
like
calling
a
method
called
add
with
a
null
value
that
no
results
in
this
key
being
deleted
seems
fairly
odd.
Calling.
A
Rafa
now
video
and
the
item
being
deleted,
maybe,
but
that
one
is
also
more
like
a
reflection,
maybe
of
the
fact
that
null
is
not
a
valid
value.
To
begin
with
right,
that's
more
like
all
the
old
dictionary
make
a
hash
table
worked
right,
but
you
can't
do
between
a
key
having
the
value
null
and
the
key
not
being
in
there
in
the
hash
table,
because
either
way
they
betray
me
they
would
be
now
and
that's
the
behavior
you
want,
then
that
seems
fine
I
mean
that's.
Why
I'm
saying
for
the
setter?
A
A
A
You
know
I
think
having
a
collection
type
wouldn't
be
bad,
I
would
probably
still
make
it
implement
I
dictionary
because
you
can
write
and
that
basic
is
people
generally
speaking,
the
right
semantics
that
they
want,
and
then
the
only
thing
you
would
say
is
you
would
I
would
not
have
the
set
method.
I
would
just
follow
the
normal
patterns
and
I
would
basically
just
say
yeah
set
with
an
indexer
or
whatever.
A
A
Okay,
so
I
think
that's
I
forgot
about
the
type
is
we
have
this
weird
type
in
the
VCL
that
you
can
either
index
by
key
or
by
index?
And
so
that's
I
think
it's
used
for
someone.
The
networking
stack,
probably
one
for
very
similar
reasons,
because
Harris
I
usually
also
order
dependent
but
like
yeah,
it's
just
yeah
I
mean
the
questions
also
like
to
do
the
generics
buy.
You
anything
can
pop.
We
just
get
away
with
I
dictionary
to
begin
with,
but
I
think
having
a
custom
type
that
avoids
these
stupid.
A
Nested
generics
I
think
it's
probably
useful
for
the
API.
The
only
thing
I
would
say
is
like
make
sure
it
did
these
collection
types.
You
know
generally
gel
with
the
VCL
right
there
follow
normal
conventions.
You
can
use
them
up.
You
can
use
collection,
initializer
syntax
for
those
and
then
I
think
it
might
be
more
usable
than
the
raw
animal
you
have
here,
one
one.
F
Little
bit
of
a
stretch,
but
we
did
this
for
perf
in
other
places
like
I-
will
a
desk
source.
For
example,
we
implemented
up
on
existing
objects
and
reused.
So
maybe,
if
you
have
an
object,
that
kind
of
already
has
attributes,
but
then
I
numerable
is
not
the
best
interface
to
do
it
at
least,
would
be
better.
So
yeah.
A
I
mean
like,
even
even
if
you
think,
I
knew
of
key
value
pairs.
The
ideal
thing
for
those
kind
of
situations,
I
would
probably
still
suggest
having
an
overload
that
would
just
take
the
whatever
the
collection
type
is
called
because
if
somebody
is
new
to
this
and
I
just
do
new
activity
event
and
then
they
see
base
the
item
will
of
key
value
pair
string,
comma
object.
They
have
no
idea
how
to
get
one
right.
I
mean
yes,
some
people
know
they
can
just
new
opener
in
an
array.
A
But
like
it's
much
nicer,
if
you
see
oh
there's
another
overload,
it
takes
a
I,
don't
know
a
native
its
attributes
collection.
Let
me
just
new
this
guy
up
right
and
then
you
merely
have
a
useful
type
that
you
can
pass
in,
but
that
doesn't
mean
we
have
to
win
to
base.
What
I'm
saying
is,
even
if
we
add
the
collection
type,
we
don't
have
to
remove
the
one
that
Xie
movie
so
how
it
doesn't
overload.
A
B
F
F
A
A
A
A
A
B
B
B
No,
we
will
not
expose
it
as
collections
here,
because
we
want
to
reduce
the
confusion
why
you
want
to
sit
and
you
attacked
zero,
so
people
can
get
confused
about
like
to
get
the
collection
and
since
their
attribute
0
is
at
exit.
So
we
are
trying
to
avoid
to
have
two
ways
to
sit
the
tags
on
the
activity.
C
A
B
A
A
B
F
A
That
or
I
mean
they
could
speed
weird
right
now,
because
you
have
basically
overloads
that
take
their
time
offset
in
some.
Don't
take
the
item
offset
so
either
you
go
all
the
way.
You
just
say:
okay,
let's
just
have
a
very
simple
constructor
for
name
and
then
we
only
have
one
other
constructor
that
takes
name
optional
day
time
off
certain
optional
attributes.
A
E
B
Yeah
this
last
one,
okay,
so
just
to
give
some
some
idea
about
like
what
we're
trying
to
do
here.
So
when
you
try
to
create
a
new
activity,
you
call
activity,
source,
dot,
start
activity
and
one
of
the
parameters
you
pass
is
the
parent
context
context.
It
has
like
twist
ID
a
span
ID,
whatever
stay
state
and
flags
and
later
about
like
use
anybody
listening,
there's
any
listener.
B
I
mean
the
listener,
will
get
a
call
back
with
these
parameters,
including
the
current
context,
and
the
listener
can
decide
if
we
need
to
create
the
activity
or
not,
and
if
decided
to
create
the
activity,
we
will
create
the
activity
using
this
context,
which
is
it
includes
the
trace
ID.
This
is
the
important
thing.
So,
whatever
we
pass
go
to
listener,
we
create
the
activity
and
we
use
the
twist
Aggies
at
its
best
in
the
enzyme.
B
Here
we
got
a
scenario
about,
like
you
know,
when
you
don't,
when
you
don't
have
parent
I
mean
now
parent?
This
means
that
we
are
passing
the
default
context,
which
is
doesn't
have
trace
ID
or
span
ID
or
anything,
and
at
that
time
the
listener
will
get
this
callback
and
we'll
have
the
empty
or
the
40
context.
B
This
I
mean
like
no
in
most
of
the
cases,
this
is
okay,
but
we
got
some
cases
like
in
open
telemetry.
They
implementing
what
is
equal
probability,
it
sampler,
which
is
listening
to
the
activity
creation
and
they
decide
about
sampling
or
out
according
to
the
trace,
ID
part
of
of
the
decision.
So
they
want
to
get
a
valid
all
the
time,
a
valid
tris
ID,
while
coding
them.
B
So
this
means
that
they,
if
we
passed
that
the
fourth
context,
this
will
not
be
any
helpful
for
them
and
they
will
not
be
able
to
do
any,
take
any
decision
to
decide
to
sample
in
or
out
this
activity.
So
the
proposal
here
is
to
have,
in
the
listener
itself,
to
have
some
property
telling
if
we
need
to
create
a
trace
ID
before
calling
the
listener.
B
In
case
of
we
have
default
context.
So
if
you
have
default
context-
and
this
property
is
set
to
true
so
we'll
generate-
and
you
know
I'm
due
for
a
trace
ID
for
for
that
and
passing
to
the
listener-
the
reason
that
we
didn't
do
that
by
default-
and
we
have
this
property
because,
like
generating
a
new
twist
ID
is
costly.
I
mean
like
it.
Have
a
cost,
I
mean
it's
not
free.
We
allow
to
do
allocation
and
take
some
time
to
allocate
to
to
generate
like
random
trendy.
B
B
So
if
we,
if
we
passing
to
the
listener
or
this
sampler,
the
trace
ID,
which
is
invalid
one
or
defaulted
one,
they
will
not
be
able
to
take
the
decision
to
something
in
or
out
and
the
case
that
we
send.
The
default
context
today
to
the
sampler
is
when
we
have
a
null
parent.
I
mean
there
is
no
parent
and
we
just
send
the
default
context
which
doesn't
have
the
trace,
ID
or
span
ID,
and
this
making
a
problem
for
the
slammer.
B
So
we
you
want
to
make
sure
that
if
the
sampler
want
to
get
all
the
time
a
very
traced
ID
they
they
want
to
set
this
property
to
true
and
we
insure
sending
valid
risk
ID
to
them
and
if
they
decided
the
assembler,
decided
to
something
and
creates
activity.
We
are
going
to
create
activity
using
the
generated
Chris
Mundy.
F
B
I
F
F
Or
just
to
use
whatever
random
get
max
int
and
the
probability
they
have
it
would
give
the
same.
It
would
produce
the
same
amount
of
instrumented
activities
that
that
are
generating
the
activity.
Id
would,
but
unfortunately
it
would
lose
the
connection
between
every
ID.
But
is
that
connection
important?
Or
is
that
just
how
the
sampler
worked
before?
And
it
doesn't
really
matter
if
we
keep
the
same
algorithm
as
long
as
we
sample
the
same
percent
of
activities.
H
So
traits
record
for
like
when
we
create
downstream
further
activities,
they'll
share
the
same
trace
earliest
appearance.
So
if
the
sampler
just
creates
a
random
ID,
we
thought
without
taking
the
actual
race
ID,
then
it
will
result
in
inconsistent
humbling
of
child
activities,
because
when
the
child
is
created,
the
child,
the
sampler,
which
decides
whether
the
child
is
humbled
in
or
not,
it
would
be
looking
at
the
old
trace
ad
of
the
activity,
whereas
the
parent
would
how
created
like
some
random
number
so
to
ensure
both
are
some
building
together
or
Samba.
Doubt
together.
H
We
need
to
use
the
same,
try
setting
the
parent
and
child.
So
it's
totally
fine.
If
the
parent
like
if
the
parent
sampler
just
generates
a
random
ID,
but
then
there
should
be
a
way
to
tell
the
activity
creation
mechanism
that
this
is
idea
used.
So
please
use
this
as
the
trace
ID.
Should
you
choose
to
create
the
activity?
H
F
F
H
F
B
A
A
Somewhat
at
loss
here
to
where
it's
like,
and
where
are
we
going
with
this,
like
I,
mean
on
the
one
inside
and
similar
property,
is
not
bad.
On
the
other
hand
like
given
how
much
time
we
spent
talking
about
it
like
it's
clearly,
not
something
that
people
necessarily
will
quickly
understand
what
it
does.
A
Yeah,
unless
there's
a
mean
the
normally
D,
we
kind
of
knobs
that
we
have
in
DB
CL
is
naming
and
place
where
we
put
stuff.
So
if
something
is
more
advanced,
be
trying
to
hide
it
by
putting
it
somewhere
else,
if
we
can,
or
by
making
the
naming
at
least
somewhat
clear
that
this
is
something
you
need
to
read
some
box
on
in
this
guy.
In
this
case,.
B
A
F
Considering
I
just
took
a
look
at
the
activity
listener
interface,
it's
complicated.
You
know
already.
F
Other
option
is
currently
we
returned
an
enum,
the
sampling
callback
like
if
we
decided
to
return
this
drug.
That
has
multiple
things.
Maybe
we
can
put
it
there,
but
that's
even
bigger
change.
So,
yes,
I,
don't
have
a
better
alternative,
but
should
do
is
route
ID
exposed
in
any
other
property
name
like
what
is
the
actual
property
name
on
activity
context
that
gets
populated
I,
don't
think
we
have
this.
This
property
names
should
be
should
at
least
corresponds
to
what
we
can
assert
yeah.
B
B
F
F
F
I
mean
make
it
lazy
materialize
it
when
somebody
else,
it's
the
same
amount
of
allocations
right.
If
somebody,
if
someone
needs
to
look
at
the
string,
it
has
to
be
string,
but
if
we
can,
for
example,
if
the
sampler
can
look
at
the
activity
ID
as
byte,
that's
a
way
to
make
it
faster.
So
what
I'm
saying
is?
Can
we
make
so
that
uninitialized
activity
still
has
some.
B
B
B
F
B
B
B
A
I
think
this
one,
you
might
also
be
five
minutes
of
eight
actually,
because
I
think
we
talked
about
there's
an
email
already
yeah
I'd
appreciate
if
we
can
get
through
this
one.
So
last
time
what
we
did
was
this,
so
we
basically
said
we
have
a
chibi
request
options,
implementing
I
dictionary
of
string,
comma
object,
because
I
think
the
concern
that
Steven
had
is
we
don't
want
to
duplicate
the
properties
storage?
A
They
would
eventually
construct
a
message,
but
they
would
just
get
the
options
in
and
then
basically
pass
it
on
this
way
and
then
the
feedback
that
the
networking
folks
had
was.
It
was
three
issues.
I
would
even
remember
one
one
I,
don't
remember,
I
think
I
had
one
versus
we
just
missed
one
of
those
types.
We
didn't
actually
clear.
A
So
that
one
is
was
missing
and
then
you
wanted
to
make
this
also
editor.
Browsable.
Never,
and
you
didn't
want
to
make
this
setter
settable,
so
I
think
the
API
ship
that
was
proposed
and
returned
to
this
one.
Was
this
one,
this
one
busy
just
lists
the
key
I
still
missed
the
generic
argument
here,
but
that
doesn't
matter
and
then
basically
the
idea
is
that
this
guy
would
be
at
the
walls
whenever
and
this
guy
would
be
not
settable
right.
A
Is
that
the
consumer
doesn't
have
to
give
with
the
message
directly,
but
they
still
want
to
control
some
of
the
options,
and
so
the
idea
that
we
had
was
that
we
would
take
the
options
in
and
then
deep
down
and
one
of
the
extension
methods
been
a
ver
cahors
methods
where
the
message
actually
gets
constructed.
That's
where
we
would
basically
take
these
options
and
put
them
into
the
message.
A
So
one
option
we
have
is,
we
can
say:
okay,
the
LGB
request
options
is
an
ID
canary
already,
so
you
can
of
course,
trivially
enumerated
and
copy
the
values
over.
The
problem
is,
we
also
said
we
want
to
explicit
interface
implementation
of
this
to
promote
the
typed
API
surface,
but
then
we'll
make
it
really
ugly
for
consumers
to
effectively
transfer
the
keys
from
one
to
the
other,
because
you
basically
have
to
downcast
this
guy
here
to
an
ideation
area
of
string,
comma
object,
which
isn't
necessarily
super
intuitive
I.
A
C
A
A
Maybe
I'm
missing
it,
but
let
it
so
busy
you're
saying
you
you
will
the
velocity
of
things
would
not
have
an
options
instance
and
that
that's
that
you
can
still
do
that
right,
because
lazy
just
means
first
time.
Somebody
calls
together
unit
you
you
you
initiated
right,
so
you
can
still
have
a
setter
for
that
right.
C
Yeah
we
could
we
just
we
didn't
see
a
super
immediate
need.
I
also
I
understand
that
you're
thinking
about
extension
methods,
one
thing
that
we
we
want
to
tackle
in
probably
the
dotnet
6
timeframe
is:
we
have
users
who
want
to
set
like
per
request
headers
without,
whilst
still
using
convenience
methods,
and
things
like
that.
C
C
A
C
A
I
think
so,
I
think
that's
time
we
talked
about
this
Stephen
brought
this
up
and
said.
Basically,
we
already
have
a
way
to
do
generic
things
with
the
request
and
I
think
originally
I
forgot
what
they
actually
I
am
if
they
actually
ain't
here
right
proposal.
One
proposal
one
had
this
very
specific
instance
of
the
handler.
We
didn't
like
that.
One
then
proposal
two
was
basically
more
generalized,
so
we
say:
okay,
we
have
these
request
options
that
we
can
now
pass
into
all
these
methods.
That
do
anything.
A
Let
me
say
we
don't
like
that
either
because
it
seems
now
every
time
we
do
anything.
We
had
these
ginormous
numbers
of
overloads
and
then
we
said
well,
you
know.
Maybe
we
just
put
them
on
the
message
and
if
we
put
them
on
the
message,
then
well
then
the
basically
the
parties
that
care
about
this
can
take
them
in
the
parties
that
don't
care
that
don't
care,
and
then
this
way
it's
similar
to,
let's
say
our
extension
methods
for
Jason's
utilization,
where
we
have
one
overall,
it
doesn't
take
the
Jason
options
and
one
that
does.
A
If
the
default
options
work
forever
for
everyone,
then
they
don't
have
to
pass
them
in.
It
will
be
somewhere
here.
If
you
actually
need
to
pass
in
per
request
thing,
is
you
do
and
if
you
don't,
then
you
don't
right
and
but
like
basically,
this
one
is
open-ended.
We
have
strongly
typed
piece
and
then
you
means
you
can
almost
pass
any
data.
You
want
to
the
request.
I
mean.
I
E
Was
that
because
it
would
be
the
setters
weird,
because
if
you
set
some
properties
already,
the
fact
that
properties
and
options
are
the
same
thing,
so
you
called
like
properties,
dot,
add
and
then
something
replaces
options
where'd,
that
property
go
like
there's.
No,
that
the
things
don't
mix
and-
and
it's
just
back
to
all
the
stuff
we
were
talking
about
with
telemetry,
of
like
it's
fine
as
long
as
there's
only
one
writer
but
right.
F
C
Yeah
I
mean
the
initial
proposal
or
counterproposal
or
whatever
it
was.
We
talked
about
adding
first-class
methods
on
HTTP
client
and
this
being
kind
of
a
first
step
in
the
collection
that
you
would
pass
to
those
that
would
be
usable
by
all
the
different
types
of
handlers.
All
we're
saying
is
that
we
would
love
to
add
headers
to
that
mix.
C
A
I
guess
I'm
fine
with
not
having
a
setter
I
care
about
the
scenario.
More
than
anything
right
like
it
just
seems,
the
setter
seems
the
most
obvious
way
of
doing
it,
but
I
by
the
problems
of
that
so
yeah.
My
suggestion
would
be
at
the
very
minimum.
We
should
have
a
method
on
HTTP
request
options
that
basically
takes
another
HTV
request
options
and
just
effectively
calls
the
set
method
in
the
loop.
A
It
doesn't
quite
do
that
because
it's
generic
but
like
that
would
be
logically
what
ends
up
happening.
So
basically,
if
the,
if,
if
you
configure
the
key
and
then
the
the
request
options,
you're
taking
and
also
defines
the
key,
what
that
would
override
it
would
not
cause
an
exception,
it
will
just
replace
the
contents.
So
that's
why
I
would
probably
call
it
set
items,
because
the
idea
would
be
anyway.
Everything
you
have.
That's
not
in
the
one
that's
being
passed
remains
and
everything
that
you
know
is
new
will
be.
You
know
edit
and
everything.
I
I
A
I
A
Ose,
what
you're
saying
you're
basically
saying
for
the
most
part
you
I
have
zero
options,
and
then
you
just
set
the
five
you
care
about,
and
that's
it
there's.
No,
you
know
replacement
or
anything
going
on
yeah
yeah
no
I
buy
that
I.
Think
to
me
it's
more
like
overriding
everything
on
the
request
message.
If
that's
the
only
way
of
doing
it,
the
you
know
to
Jeremy's
point
that
might
bite
us
later
right
business.
If
the
semantics
we
have
it's
just
will
be
a
place
to
once.
A
A
So
I
mean,
as
I
said,
like
the
immediate
need
would
be.
We
would
want
to
add
it
to
the
HCP
extension
methods,
because
that's
the
Blazer
scenario
right
so
like
this
one
was
added
specifically
for
blazer
support
right
and
we
expect
people
to
use
these
extension
methods
in
the
blazer
app.
So
that
would
have
you
would
have
to
add
overloads
to
them
to
take
a
chibi
request
options.
And
then
the
question
is:
how
do
we
compose
them?
C
C
A
The
the
scenario
is
you
call
it
a
method
on
HP
client,
but
you
don't
have
a
request
message
at
all.
Right,
like
the
the
the
koala
just
says,
get
as
Jason
async
and
passes
in
a
URL
and
maybe
some
Jason
options
right.
So
another
person
wants
to
say:
oh
I
want
to
configure
my
whatever
the
whatever
one
of
those.
Let
me
send.
The
settings
were
like
I
forgot.
Like
some
of
these,
you
know
what
was
it.
I
A
Yeah,
so
this
is
the
one
where
we
bases
said
yeah,
so
this
is
my
example:
effectively
Cori
right
so
like
this
guy,
you
basic
pass
in
the
options
and
the
consumer
has
no
like
there's
no
message
in
here.
The
implementation
of
this
method
eventually
probably
constructs
a
message,
but
that's
basically,
the
part
of
a
would
have
to
stitch
in
these
request
options
to
have
the
one
on
the
message.
A
C
I
I
A
I
I
A
I
A
I
It
does
so
it's
an
HTP
hunter
on
the
other
side,
so
there
is
like
a
user
code
on
one
and
the
HCP
under
other.
On
the
other
hand,
the
SG
on
the
pillar
currently
uses
like
the
dictionary
like
a
TV's
property.
So
it's
just
a
loose
bag
and
we
don't
want
a
loose
bag
because
it
feels
like
unstructured
I
wanted
to
bring
a
little
more
structure
to
it.
I
A
A
A
A
Kind
of
where
I'm
heading,
because
I
mean
my
understanding,
is
that
for
infrastructure
code
it
makes
sense
because
at
the
very
bottom
there
is
a
message
right
so
that
that's
why
you
always
have
pretty
much
access
to
the
message,
but
the
end
user
code,
who
actually
issues
request
from
the
browser
they
very
I
mean
most
of
the
time
you
want
to
stay
as
high
level
as
you
can
right.
So,
like
that's
why
these
extension
methods
on
HTTP
client
exist.
So
people
don't
have
actually
construct
a
message
by
hand
right.
A
So
if
we
are
saying
that
for
the
common
cases
where
you
want
to
configure
something
in
the
browser,
you
never
have
to
use
the
request
options
because
the
you
know
underlying
hand.
That
does
the
right
thing
anyway,
then
that's
fine,
but
if
we
expect
people
in
the
browser
who
just
want
to
set
a
blazer
option,
if
we
now
ask
them
all
know
every
method
you
have
called
so
far
the
constructed
messages
for
you.
You
can
only
do
that.
You
have
to
actually
construct
the
message
yourself.
A
C
Needing
to
construct
the
message:
it's
not
low-level!
It's!
It's
really
how
you
do
anything
today
that
you
can't
use
one
of
the
one
of
the
convenience
methods
on
and
often
times
the
convenience
methods.
Don't
do
the
right
thing
in
terms
of
the
response
message
like
error,
handling
things
like
that,
so
users
really
end
up
using
it
anyway.
Okay,
I
agree
with
you
the
this.
It
would
be
nice
if
those
could
be
made
more
usable
but
I.
Just
I,
don't
want
to
add
convenience
methods
now
and
then
F
to
add
more
overloads
to
them
later
until.
C
A
If
you're,
basically
saying
that
the
options
people
would
set
like
sorry,
if
you're
saying
the
people
that
would
use
these
lazy,
specific
options
are
already
on
the
advanced
path
or
would
be
very
lucky
on
the
advanced
path
with
the
construct
messages
directly,
then
that
makes
perfect
sense
to
me.
I
just
want
to
avoid
the
thing
where
we
now
have
this
feature.
That
is
like
90%
there,
but
then
you
know.
A
I
A
I
A
I
guess
that's
my
point
right
so
that
give
if
I
just
want
to
avoid
the
bishop
of
broken
end-to-end
right
in
five
four
like
if
you
think
there
is
an
end-to-end,
but
it's
the
thing
that's
missing
is
a
is
a
feature
that
lives
on
in
the
next
release,
and
that's
fine
but,
like
you
know
big,
because
one
of
the
problems
I
have
with
this
issue
here
is
that
it's
on
the
one
inside
very
specific
to
vamp
assembly.
But
then
we
ended
up
with
this
super
generic
API.
C
I
Don't
think
anybody
here
I
mean.
E
We've
added
EB,
never
on
things
in
the
past
and
then
we
get
the
issue
that
says:
please
remove
it
because
it's
annoying
my
tooling
in
some
sort.
So
it's
it's
like
if
we've
marked
it
as
obsolete
I
think
that's
enough!
I
don't
like
we
can
do
EB,
never
in
another
release,
but
let's,
let's
I,
think
doing
them
both
in
the
same
one
is
traits
people.
C
C
A
The
end
of
the
world,
if
we,
if
it's
visible
to
me
honestly
like
the
the
editor
browsable,
is
basic
just
to
remove
clutter
from
intellisense.
That's
really
what
it's
for
right,
because
it
will
not
do
it
anywhere
else.
It
will
still
show
up
in
Docs,
there
was
still
compile
right,
but
so
the
biggest
mileage
you
get
out
of
this
one
here
is
because
the
base
it
tells
people
they're
using
the
they're
doing
the
wrong
thing.
A
They
should
use
the
other
one
instead
and
so
I
think
that
one
that
one
is
the
thing
we
should
be
doing
and
then
a
little
browsable
yeah.
The
problem
is,
if
you,
if
you
hide
it,
and
people
ever
have
to
use
it,
that's
annoying,
but
I.
Think
in
this
case
you
could
invent
ourselves
a
DEP,
that's
never
the
case,
because
every
time
you
passed
in
properties,
you
can
all
pass
on
options
because
it
really
converts.
So
that
should
be
fine,
but
like
I,
also
down
I,
believe
Jeremy.