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