fluid-core/internal/contract/backend_requirement_gen.go
tegwick 76912adef8
Some checks failed
ci / build (push) Failing after 1m6s
Generate contract types, pin fixtures to spec, add build and ADRs
Completes FLUID-WP-0002. The record types in internal/contract are
generated from schemas/ by a dependency-free generator; fixtures
transcribed from the spec's worked examples validate against those
schemas and round-trip through the generated types with
DisallowUnknownFields, so a spec change that misses the schemas fails
CI rather than drifting silently.

Adds identifier prefix helpers, Makefile, GitHub Actions, and five ADRs
recording the Go choice, out-of-process attachment, the wire contract as
boundary, the evidence store, and revision identity.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014KmVxhJ35tCo7rE7UnLwWu

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1116572@bnt-lap001
Assistant-Session: 8ba9bb93-a72a-4883-b189-2499cce5c400
2026-09-04 02:03:12 +02:00

100 lines
5.5 KiB
Go

// Code generated by tools/schemagen. DO NOT EDIT.
// Source: schemas/. Regenerate with `make generate`.
package contract
type FluidBackendRequirementCapability struct {
Description string `json:"description" yaml:"description"`
Title string `json:"title" yaml:"title"`
}
type FluidBackendRequirementDispositionState string
const (
FluidBackendRequirementDispositionStateOPEN FluidBackendRequirementDispositionState = "OPEN"
FluidBackendRequirementDispositionStateACCEPTED FluidBackendRequirementDispositionState = "ACCEPTED"
FluidBackendRequirementDispositionStatePLANNED FluidBackendRequirementDispositionState = "PLANNED"
FluidBackendRequirementDispositionStateAVAILABLE FluidBackendRequirementDispositionState = "AVAILABLE"
FluidBackendRequirementDispositionStatePARTIALLYAVAILABLE FluidBackendRequirementDispositionState = "PARTIALLY_AVAILABLE"
FluidBackendRequirementDispositionStateOUTOFSCOPE FluidBackendRequirementDispositionState = "OUT_OF_SCOPE"
FluidBackendRequirementDispositionStateREJECTED FluidBackendRequirementDispositionState = "REJECTED"
FluidBackendRequirementDispositionStateSUPERSEDED FluidBackendRequirementDispositionState = "SUPERSEDED"
)
// Valid reports whether v is a defined FluidBackendRequirementDispositionState.
func (v FluidBackendRequirementDispositionState) Valid() bool {
switch v {
case FluidBackendRequirementDispositionStateOPEN, FluidBackendRequirementDispositionStateACCEPTED, FluidBackendRequirementDispositionStatePLANNED, FluidBackendRequirementDispositionStateAVAILABLE, FluidBackendRequirementDispositionStatePARTIALLYAVAILABLE, FluidBackendRequirementDispositionStateOUTOFSCOPE, FluidBackendRequirementDispositionStateREJECTED, FluidBackendRequirementDispositionStateSUPERSEDED:
return true
}
return false
}
// The backend decides. Repeated OUT_OF_SCOPE feeds boundary learning
// (ArchitectureBlueprint.md section 22).
type FluidBackendRequirementDisposition struct {
Reason *string `json:"reason,omitempty" yaml:"reason,omitempty"`
State FluidBackendRequirementDispositionState `json:"state" yaml:"state"`
TargetRef *string `json:"target_ref,omitempty" yaml:"target_ref,omitempty"`
}
type FluidBackendRequirementExpectedUsage struct {
RequestsPerDay *int64 `json:"requests_per_day,omitempty" yaml:"requests_per_day,omitempty"`
}
type FluidBackendRequirementQuality struct {
Availability *UnitInterval `json:"availability,omitempty" yaml:"availability,omitempty"`
P95LatencyMS *float64 `json:"p95_latency_ms,omitempty" yaml:"p95_latency_ms,omitempty"`
}
type FluidBackendRequirementSecurity struct {
AuthorizationScope string `json:"authorization_scope,omitempty" yaml:"authorization_scope,omitempty"`
TenantIsolation string `json:"tenant_isolation,omitempty" yaml:"tenant_isolation,omitempty"`
}
type FluidBackendRequirementSemantics struct {
Consistency string `json:"consistency,omitempty" yaml:"consistency,omitempty"`
RequiredFields []string `json:"required_fields,omitempty" yaml:"required_fields,omitempty"`
}
type FluidBackendRequirementUrgency string
const (
FluidBackendRequirementUrgencyLOW FluidBackendRequirementUrgency = "LOW"
FluidBackendRequirementUrgencyMEDIUM FluidBackendRequirementUrgency = "MEDIUM"
FluidBackendRequirementUrgencyHIGH FluidBackendRequirementUrgency = "HIGH"
)
// Valid reports whether v is a defined FluidBackendRequirementUrgency.
func (v FluidBackendRequirementUrgency) Valid() bool {
switch v {
case FluidBackendRequirementUrgencyLOW, FluidBackendRequirementUrgencyMEDIUM, FluidBackendRequirementUrgencyHIGH:
return true
}
return false
}
type FluidBackendRequirement struct {
BackendService string `json:"backend_service" yaml:"backend_service"`
Capability FluidBackendRequirementCapability `json:"capability" yaml:"capability"`
// The backend decides. Repeated OUT_OF_SCOPE feeds boundary learning
// (ArchitectureBlueprint.md section 22).
Disposition FluidBackendRequirementDisposition `json:"disposition" yaml:"disposition"`
ExpectedUsage *FluidBackendRequirementExpectedUsage `json:"expected_usage,omitempty" yaml:"expected_usage,omitempty"`
ID BackendRequirementID `json:"id" yaml:"id"`
OriginatingHypothesis *HypothesisID `json:"originating_hypothesis,omitempty" yaml:"originating_hypothesis,omitempty"`
OriginatingInterface InterfaceID `json:"originating_interface" yaml:"originating_interface"`
OriginatingRevision *RevisionID `json:"originating_revision,omitempty" yaml:"originating_revision,omitempty"`
Quality *FluidBackendRequirementQuality `json:"quality,omitempty" yaml:"quality,omitempty"`
SchemaVersion SchemaVersion `json:"schema_version" yaml:"schema_version"`
Security *FluidBackendRequirementSecurity `json:"security,omitempty" yaml:"security,omitempty"`
Semantics *FluidBackendRequirementSemantics `json:"semantics,omitempty" yaml:"semantics,omitempty"`
Urgency *FluidBackendRequirementUrgency `json:"urgency,omitempty" yaml:"urgency,omitempty"`
}
// Capability the interface needs but has no authority to build. FLUID escalates
// rather than crossing the boundary (FluidAPIStandards.md section 30).
type BackendRequirementDocument struct {
FluidBackendRequirement FluidBackendRequirement `json:"fluid_backend_requirement" yaml:"fluid_backend_requirement"`
}