Table of Contents

src/MultiSiteManufacturing.Contracts/Protos/facts.proto

This page is part of the documentation for Orleans.Lattice 9.9.0 (release line 9.9), built 2026-10-04. It is also published as markdown, with every table and list, at src-multisitemanufacturing-contracts-protos-facts-proto.md, and llms.txt lists every page.

Part of MultiSiteManufacturing source.

syntax = "proto3";

package multisitemfg.v1;

option csharp_namespace = "MultiSiteManufacturing.Contracts.V1";

import "common.proto";

service FactIngressService {
  rpc EmitFact       (FactEnvelope)        returns (EmitResult);
  rpc EmitFactStream (stream FactEnvelope) returns (EmitSummary);
}

message FactEnvelope {
  string fact_id = 1;
  string serial = 2;
  Hlc hlc = 3;
  ProcessSite site = 4;
  string operator_id = 5;
  string description = 6;

  oneof payload {
    ProcessStepCompleted process_step_completed = 10;
    InspectionRecorded   inspection_recorded    = 11;
    NonConformanceRaised non_conformance_raised = 12;
    MrbDispositionEvent  mrb_disposition        = 13;
    ReworkCompleted      rework_completed       = 14;
    FinalAcceptance      final_acceptance       = 15;
  }
}

message ProcessStepCompleted {
  ProcessStage stage = 1;
  string heat_lot = 2;
  map<string, string> process_parameters = 3;
}

message InspectionRecorded {
  Inspection inspection = 1;
  InspectionOutcome outcome = 2;
  map<string, string> measurements = 3;
  // Unix seconds; 0 when not set.
  int64 instrument_calibration_unix_seconds = 4;
}

message NonConformanceRaised {
  string nc_number = 1;
  string defect_code = 2;
  NcSeverity severity = 3;
}

message MrbDispositionEvent {
  string nc_number = 1;
  MrbDispositionKind disposition = 2;
}

message ReworkCompleted {
  string rework_operation = 1;
  bool retest_passed = 2;
}

message FinalAcceptance {
  string fai_report_id = 1;
  string inspector_id = 2;
  bool certificate_issued = 3;
}

message EmitResult {
  string fact_id = 1;
  bool accepted = 2;
}

message EmitSummary {
  int32 accepted_count = 1;
}