Auto-seeding and `WithContext`

Ok() and Fail() auto-seed Context.Entity from typeof(T).Name. Runtime values are added with .WithContext():

var result = Result<Order>.Ok(order)
    .WithContext(entityId: orderId.ToString(), correlationId: traceId, tenantId: tenantId);

// result.Context:
//   Entity        = "Order"   ← auto-seeded
//   EntityId      = orderId   ← from WithContext
//   CorrelationId = traceId
//   TenantId      = tenantId

.WithContext() merges — calling it twice preserves fields from the first call:

var r = Result<Order>.Ok(order)
    .WithContext(entityId: "42", correlationId: "trace-1")
    .WithContext(entityId: "99");   // only overrides EntityId

// CorrelationId = "trace-1" is preserved