Help us shape the future of Go! Take the 2026 Go Developer Survey

model

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2026 License: MIT Imports: 24 Imported by: 0

Documentation

Overview

ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER

ENGMODEL-OWNER-UNIT: FU-AIRBORNE-ASSURANCE-EXPORTER

ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER

ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER

ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER

ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER

ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER

ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER

ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER

Code generated by cmd/sysmlmetamodel; DO NOT EDIT.

ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER

ENGMODEL-OWNER-UNIT: FU-MODEL-LOADER

Index

Constants

View Source
const AuthoringContractVersion = "engineering-model.authoring.v2"
View Source
const CurrentSchemaVersion = 2
View Source
const WorkspaceEnv = "ENGMOD_WORK"

WorkspaceEnv selects the model workspace: "off" ignores every engmod.work.yml, a file path uses that file only, unset searches parents.

View Source
const WorkspaceFileName = "engmod.work.yml"
View Source
const WorkspaceOff = "off"

WorkspaceOff is the workspace mode that disables workspace lookup.

Variables

View Source
var NAFV41Viewpoints = map[string]string{
	"C1":    "Capability Taxonomy",
	"C2":    "Enterprise Vision",
	"C3":    "Capability Dependencies",
	"C4":    "Standard Processes",
	"C5":    "Effects",
	"C7":    "Performance Criteria",
	"C8":    "Planning Constraints",
	"Cr":    "Capability Roadmap",
	"S1":    "Service Taxonomy",
	"S2":    "Service Structure",
	"S3":    "Service Interfaces",
	"S4":    "Service Functions",
	"S5":    "Service States",
	"S6":    "Service Sequence",
	"S7":    "Service Interface Parameters",
	"S8":    "Service Constraints",
	"Sr":    "Service Roadmap",
	"C1-S1": "Service to Capability Mapping",
	"L1":    "Logical Taxonomy",
	"L2":    "Logical Structure",
	"L2-L3": "Logical Concept",
	"L3":    "Logical Interactions",
	"L4":    "Logical Activities",
	"L5":    "Logical States",
	"L6":    "Logical Sequence",
	"L7":    "Information Model",
	"L8":    "Logical Constraints",
	"Lr":    "Logical Roadmap",
	"P1":    "Resource Taxonomy",
	"P2":    "Resource Structure",
	"P3":    "Resource Interactions",
	"P4":    "Resource Functions",
	"L4-P4": "Activity to Function Mapping",
	"P5":    "Resource States",
	"P6":    "Resource Sequence",
	"P7":    "Data Model",
	"P8":    "Resource Constraints",
	"Pr":    "Resource Roadmap",
	"A1":    "Metadata Definitions",
	"A2":    "Architecture Products",
	"A3":    "Architecture Correspondence",
	"A4":    "Architecture Methodology",
	"A5":    "Architecture Status",
	"A6":    "Architecture Versions",
	"A7":    "Architecture Metadata",
	"A8":    "Architecture Standards",
	"Ar":    "Architecture Roadmap",
}

NAFV41Viewpoints is the official NAF v4.1 architecture-product registry from the framework's viewpoint chapter.

TRLC-LINKS: REQ-EMG-041, REQ-EMG-043 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-VALIDATION-ENGINE, FU-NAF-EXPORTER, REF-NAF-V4-1-SPECIFICATION

View Source
var OfficialSysMLMetaclasses = map[string]OfficialSysMLMetaclass{}/* 175 elements not displayed */
View Source
var OfficialSysMLSemanticAliases = map[string]string{}/* 327 elements not displayed */
View Source
var SysMLSemanticAliasExceptions = map[string]string{
	"engineering_extension":  "typed Engineering Model extension outside the official metamodel",
	"quantity_definition":    "standard-library semantic concept, not an Ecore metaclass",
	"stakeholder_definition": "standard-library semantic concept, not an Ecore metaclass",
	"stakeholder_usage":      "standard-library semantic concept, not an Ecore metaclass",
	"unit_definition":        "standard-library semantic concept, not an Ecore metaclass",
}

Functions

func EffectiveSchemaVersion

func EffectiveSchemaVersion(version int) (int, error)

TRLC-LINKS: REQ-EMG-044, REQ-EMG-046

func HasSemanticErrors

func HasSemanticErrors(diagnostics []SemanticDiagnostic) bool

HasSemanticErrors reports whether canonical projection failed.

TRLC-LINKS: REQ-EMG-035, REQ-EMG-036

func IsCodeID

func IsCodeID(id string) bool

IsCodeID reports whether id is an inferred, path-derived CODE identifier. TRLC-LINKS: REQ-EMG-059 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-CODEMAP-INFERENCE

func IsOpenEvidenceState

func IsOpenEvidenceState(state string) bool

TRLC-LINKS: REQ-EMG-055

func NAFV41ViewpointTitle

func NAFV41ViewpointTitle(code string) (string, bool)

NAFV41ViewpointTitle resolves an official viewpoint code. TRLC-LINKS: REQ-EMG-041, REQ-EMG-043

func NormalizeDisclaimer

func NormalizeDisclaimer(value string) string

TRLC-LINKS: REQ-EMG-055

func ParseExactModuleVersion

func ParseExactModuleVersion(modulePath, version string) (module.Version, error)

ParseExactModuleVersion validates an explicit CUE module path and canonical semantic version. TRLC-LINKS: REQ-EMG-047, REQ-EMG-049 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-SYSTEM-COMPOSITION

func ParseQualifiedReference

func ParseQualifiedReference(ref string) (alias, id string, err error)

ParseQualifiedReference splits alias::ID and rejects legacy slash-qualified and malformed references. TRLC-LINKS: REQ-EMG-049, REQ-EMG-051

func ProjectSemanticModel

func ProjectSemanticModel(bundle Bundle) (SemanticModel, []SemanticDiagnostic)

ProjectSemanticModel derives one deterministic semantic graph from the YAML-backed Bundle. It never mutates or replaces the authored model.

TRLC-LINKS: REQ-EMG-035 ENGMODEL-LINKS: FU-MODEL-LOADER, DO-CANONICAL-SEMANTIC-MODEL, DO-ARCHITECTURE-MODEL

func QualifyReference

func QualifyReference(alias, id string) (string, error)

QualifyReference creates the only supported cross-module identifier form. TRLC-LINKS: REQ-EMG-049, REQ-EMG-051

func ReadCUEModulePath

func ReadCUEModulePath(dir string) (string, error)

ReadCUEModulePath reads the canonical module identity from cue.mod/module.cue. TRLC-LINKS: REQ-EMG-047, REQ-EMG-048, REQ-EMG-049 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-SYSTEM-COMPOSITION

Types

type Actor

type Actor struct {
	ID          string `yaml:"id"`
	Name        string `yaml:"name"`
	Description string `yaml:"description"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type AirborneApproval

type AirborneApproval struct {
	ID          string   `yaml:"id" json:"id"`
	SubjectRefs []string `yaml:"subjectRefs" json:"subjectRefs"`
	Approver    string   `yaml:"approver" json:"approver"`
	Evidence    []string `yaml:"evidence" json:"evidence"`
	State       string   `yaml:"state" json:"state"`
}

type AirborneProfile

type AirborneProfile struct {
	ID                        string   `yaml:"id" json:"id"`
	Standard                  string   `yaml:"standard" json:"standard"`
	Edition                   string   `yaml:"edition" json:"edition"`
	SoftwareLevel             string   `yaml:"softwareLevel" json:"softwareLevel"`
	SoftwareItem              string   `yaml:"softwareItem" json:"softwareItem"`
	Applicant                 string   `yaml:"applicant" json:"applicant"`
	Authority                 string   `yaml:"authority" json:"authority"`
	CertificationBasis        string   `yaml:"certificationBasis" json:"certificationBasis"`
	SafetyAllocationReference string   `yaml:"safetyAllocationReference" json:"safetyAllocationReference"`
	Supplements               []string `yaml:"supplements" json:"supplements"`
	ClaimsDisclaimer          string   `yaml:"claimsDisclaimer" json:"claimsDisclaimer"`
}

type AirborneReview

type AirborneReview struct {
	ID          string   `yaml:"id" json:"id"`
	SubjectRefs []string `yaml:"subjectRefs" json:"subjectRefs"`
	Reviewer    string   `yaml:"reviewer" json:"reviewer"`
	Result      string   `yaml:"result" json:"result"`
	Evidence    []string `yaml:"evidence" json:"evidence"`
	State       string   `yaml:"state" json:"state"`
}

type AirborneTool

type AirborneTool struct {
	ID            string         `yaml:"id" json:"id"`
	Name          string         `yaml:"name" json:"name"`
	Version       string         `yaml:"version" json:"version"`
	IntendedUse   string         `yaml:"intendedUse" json:"intendedUse"`
	CreditClaimed bool           `yaml:"creditClaimed" json:"creditClaimed"`
	Assessment    ToolAssessment `yaml:"assessment" json:"assessment"`
	Environment   string         `yaml:"environment" json:"environment"`
	Baseline      string         `yaml:"baseline" json:"baseline"`
	Status        string         `yaml:"status" json:"status"`
}

type AirborneVerificationCase

type AirborneVerificationCase struct {
	ID                   string   `yaml:"id" json:"id"`
	Method               string   `yaml:"method" json:"method"`
	Intent               string   `yaml:"intent" json:"intent"`
	RequirementRefs      []string `yaml:"requirementRefs" json:"requirementRefs"`
	ExpectedResult       string   `yaml:"expectedResult" json:"expectedResult"`
	ProcedureRef         string   `yaml:"procedureRef" json:"procedureRef"`
	IndependenceRequired bool     `yaml:"independenceRequired" json:"independenceRequired"`
	State                string   `yaml:"state" json:"state"`
}

type Allocation

type Allocation struct {
	Requirement string `yaml:"requirement"` // this system's requirement id
	To          string `yaml:"to"`          // subsystem id or hardware item id
	Target      string `yaml:"target"`      // alias::ID selected by the subsystem publication
	Rationale   string `yaml:"rationale"`
}

Allocation binds a parent requirement onto an alias-qualified identifier visible through the subsystem's selected publication. TRLC-LINKS: REQ-EMG-049, REQ-EMG-051 ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type ArchitectureDocument

type ArchitectureDocument struct {
	SchemaVersion        int                  `yaml:"schemaVersion"`
	Model                ModelMeta            `yaml:"model"`
	Semantics            SemanticContent      `yaml:"semantics"`
	Decisions            []Decision           `yaml:"-"`
	AuthoredArchitecture AuthoredArchitecture `yaml:"authoredArchitecture"`
	Compliance           ComplianceModel      `yaml:"compliance"`
	Contract             ContractModel        `yaml:"contract"`
	Composition          CompositionModel     `yaml:"composition"`
	InferenceHints       InferenceHints       `yaml:"inferenceHints"`
	NAF                  NAFProfile           `yaml:"naf"`
	Views                []View               `yaml:"views"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type ArchitectureInput

type ArchitectureInput struct {
	FunctionalGroups   []FunctionalGroup   `yaml:"functionalGroups"`
	FunctionalUnits    []FunctionalUnit    `yaml:"functionalUnits"`
	Actors             []Actor             `yaml:"actors"`
	ReferencedElements []ReferencedElement `yaml:"referencedElements"`
	Interfaces         []Interface         `yaml:"interfaces"`
	DataObjects        []DataObject        `yaml:"dataObjects"`
	DeploymentTargets  []DeploymentTarget  `yaml:"deploymentTargets"`
	HardwareItems      []HardwareItem      `yaml:"hardwareItems"`
	HardwareInterfaces []HardwareInterface `yaml:"hardwareInterfaces"`
	Contract           ContractModel       `yaml:"contract"`
	Composition        InputComposition    `yaml:"composition"`
	Semantics          SemanticContent     `yaml:"semantics"`
}

ArchitectureInput owns schema-v2 structural architecture declarations.

type ArchitectureInputDocument

type ArchitectureInputDocument struct {
	SchemaVersion int               `yaml:"schemaVersion"`
	Architecture  ArchitectureInput `yaml:"architecture"`
}

ArchitectureInputDocument is the schema-v2 structural architecture document. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046

type AssuranceDocument

type AssuranceDocument struct {
	SchemaVersion int            `yaml:"schemaVersion"`
	Assurance     AssuranceModel `yaml:"assurance"`
}

AssuranceDocument is the schema-v2 assurance document. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046

type AssuranceModel

type AssuranceModel struct {
	AttackVectors        []AttackVector        `yaml:"attackVectors"`
	Controls             []Control             `yaml:"controls"`
	Risks                []Risk                `yaml:"risks"`
	POAMItems            []POAMItem            `yaml:"poamItems"`
	TrustBoundaries      []TrustBoundary       `yaml:"trustBoundaries"`
	ThreatScenarios      []ThreatScenario      `yaml:"threatScenarios"`
	ThreatAssumptions    []ThreatAssumption    `yaml:"threatAssumptions"`
	ThreatOutOfScope     []ThreatOutOfScope    `yaml:"threatOutOfScope"`
	ThreatMitigations    []ThreatMitigation    `yaml:"threatMitigations"`
	ControlVerifications []ControlVerification `yaml:"controlVerifications"`
}

AssuranceModel owns schema-v2 security and assurance declarations.

type AttackVector

type AttackVector struct {
	ID          string `yaml:"id"`
	Name        string `yaml:"name"`
	Description string `yaml:"description"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER

type AuthoredArchitecture

type AuthoredArchitecture struct {
	FunctionalGroups     []FunctionalGroup     `yaml:"functionalGroups"`
	FunctionalUnits      []FunctionalUnit      `yaml:"functionalUnits"`
	Actors               []Actor               `yaml:"actors"`
	AttackVectors        []AttackVector        `yaml:"attackVectors"`
	ReferencedElements   []ReferencedElement   `yaml:"referencedElements"`
	Interfaces           []Interface           `yaml:"interfaces"`
	DataObjects          []DataObject          `yaml:"dataObjects"`
	DeploymentTargets    []DeploymentTarget    `yaml:"deploymentTargets"`
	HardwareItems        []HardwareItem        `yaml:"hardwareItems"`
	HardwareInterfaces   []HardwareInterface   `yaml:"hardwareInterfaces"`
	Controls             []Control             `yaml:"controls"`
	Risks                []Risk                `yaml:"risks"`
	POAMItems            []POAMItem            `yaml:"poamItems"`
	TrustBoundaries      []TrustBoundary       `yaml:"trustBoundaries"`
	States               []State               `yaml:"states"`
	Events               []Event               `yaml:"events"`
	Flows                []Flow                `yaml:"flows"`
	ThreatScenarios      []ThreatScenario      `yaml:"threatScenarios"`
	ThreatAssumptions    []ThreatAssumption    `yaml:"threatAssumptions"`
	ThreatOutOfScope     []ThreatOutOfScope    `yaml:"threatOutOfScope"`
	ThreatMitigations    []ThreatMitigation    `yaml:"threatMitigations"`
	ControlVerifications []ControlVerification `yaml:"controlVerifications"`
	Mappings             []Mapping             `yaml:"mappings"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type AuthoringContract

type AuthoringContract struct {
	ContractVersion   string                `json:"contractVersion"`
	CanonicalFormat   string                `json:"canonicalFormat"`
	SchemaAuthority   string                `json:"schemaAuthority"`
	Documents         []AuthoringDocument   `json:"documents"`
	StableIdentifiers StableIdentifierGuide `json:"stableIdentifiers"`
	Dependencies      DependencyGuide       `json:"dependencies"`
	AuthoringOrder    []string              `json:"authoringOrder"`
	Invariants        []string              `json:"invariants"`
	Compatibility     []string              `json:"compatibility"`
}

AuthoringContract is compact machine context for editing the canonical YAML set.

func BuildAuthoringContract

func BuildAuthoringContract(bundle Bundle) AuthoringContract

BuildAuthoringContract describes the loaded input model without copying its domain graph. TRLC-LINKS: REQ-EMG-044, REQ-EMG-045, REQ-EMG-047, REQ-EMG-048, REQ-EMG-049, REQ-EMG-053 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-MCP-SERVER, DO-MODEL-AUTHORING-CONTRACT

type AuthoringDocument

type AuthoringDocument struct {
	Kind           string   `json:"kind"`
	Path           string   `json:"path"`
	SchemaVersion  int      `json:"schemaVersion"`
	SchemaPath     string   `json:"schemaPath"`
	Required       bool     `json:"required"`
	TopLevelFields []string `json:"topLevelFields"`
}

type AviationDiagnostic

type AviationDiagnostic struct {
	Code    string `json:"code"`
	Path    string `json:"path"`
	Message string `json:"message"`
}

func ValidateAviation

func ValidateAviation(doc AviationDocument, requirements RequirementsDocument, architectures ...ArchitectureInputDocument) []AviationDiagnostic

ValidateAviation performs cross-document and evidence-chain validation. TRLC-LINKS: REQ-EMG-054

type AviationDocument

type AviationDocument struct {
	SchemaVersion int             `yaml:"schemaVersion" json:"schemaVersion"`
	Aviation      AviationProfile `yaml:"aviation" json:"aviation"`
}

TRLC-LINKS: REQ-EMG-053, REQ-EMG-054

type AviationProfile

type AviationProfile struct {
	Profile              AirborneProfile            `yaml:"profile" json:"profile"`
	LifecycleData        []LifecycleDataRecord      `yaml:"lifecycleData" json:"lifecycleData"`
	Objectives           []ObjectiveReference       `yaml:"objectives" json:"objectives"`
	RequirementAssurance []RequirementAssurance     `yaml:"requirementAssurance" json:"requirementAssurance"`
	VerificationCases    []AirborneVerificationCase `yaml:"verificationCases" json:"verificationCases"`
	Procedures           []VerificationProcedure    `yaml:"procedures" json:"procedures"`
	Executions           []VerificationExecution    `yaml:"executions" json:"executions"`
	Baselines            []ConfigurationBaseline    `yaml:"baselines" json:"baselines"`
	Builds               []ConfigurationBuild       `yaml:"builds" json:"builds"`
	Coverage             []StructuralCoverage       `yaml:"coverage" json:"coverage"`
	Tools                []AirborneTool             `yaml:"tools" json:"tools"`
	Reviews              []AirborneReview           `yaml:"reviews" json:"reviews"`
	Approvals            []AirborneApproval         `yaml:"approvals" json:"approvals"`
	Independence         []IndependenceRecord       `yaml:"independence" json:"independence"`
	ProblemReports       []ProblemReport            `yaml:"problemReports" json:"problemReports"`
	SQAAudits            []SQAAudit                 `yaml:"sqaAudits" json:"sqaAudits"`
	Liaison              []CertificationLiaison     `yaml:"liaison" json:"liaison"`
}

type AviationValidationError

type AviationValidationError struct{ Diagnostics []AviationDiagnostic }

func (*AviationValidationError) Error

func (e *AviationValidationError) Error() string

TRLC-LINKS: REQ-EMG-054

type BehaviorDocument

type BehaviorDocument struct {
	SchemaVersion int           `yaml:"schemaVersion"`
	Behavior      BehaviorModel `yaml:"behavior"`
}

BehaviorDocument is the schema-v2 behavioral document. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046

type BehaviorModel

type BehaviorModel struct {
	States        []State   `yaml:"states"`
	Events        []Event   `yaml:"events"`
	Flows         []Flow    `yaml:"flows"`
	Relationships []Mapping `yaml:"relationships"`
}

BehaviorModel owns authored behavior and typed relationships.

type Bundle

type Bundle struct {
	ManifestPath     string
	ArchitecturePath string
	BehaviorPath     string
	AssurancePath    string
	CompliancePath   string
	ViewsPath        string
	CatalogPath      string
	DecisionsPath    string
	RequirementsPath string
	DesignPath       string
	AviationPath     string

	Manifest     ManifestDocument
	Architecture ArchitectureDocument
	Behavior     BehaviorDocument
	Assurance    AssuranceDocument
	Compliance   ComplianceDocument
	Views        ViewsDocument
	Catalog      CatalogDocument
	Decisions    DecisionsDocument
	Requirements RequirementsDocument
	Design       DesignDocument
	Aviation     *AviationDocument

	// CodeIndex, when set, returns how many in-scope files or declarations produce each
	// inferred CODE identifier. It is built lazily, so validation only scans code when the
	// model references a CODE identifier.
	CodeIndex func() map[string]int `yaml:"-" json:"-"`

	// CodeScopeRoot, when set, is the directory the model owns for code instead of the
	// one derived from the git working tree. Composition sets it for a resolved
	// dependency to the dependency's own module directory.
	CodeScopeRoot string `yaml:"-" json:"-"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

func LoadBundle

func LoadBundle(manifestPath string) (Bundle, error)

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL TRLC-LINKS: REQ-EMG-001, REQ-EMG-044, REQ-EMG-046, REQ-EMG-049, REQ-EMG-051, REQ-EMG-053, REQ-EMG-054

type CanonicalBundle

type CanonicalBundle struct {
	// contains filtered or unexported fields
}

CanonicalBundle is the single exporter-facing compatibility facade. Documents are retained as serialization DTOs for output fidelity; Semantic is the only normalized concept graph.

TRLC-LINKS: REQ-EMG-035, REQ-EMG-036 ENGMODEL-LINKS: FU-MODEL-LOADER, DO-CANONICAL-SEMANTIC-MODEL

func LoadCanonicalBundle

func LoadCanonicalBundle(manifestPath string) (CanonicalBundle, error)

LoadCanonicalBundle validates YAML, decodes it, and constructs the canonical semantic projection before returning exporter input.

TRLC-LINKS: REQ-EMG-035, REQ-EMG-036, REQ-EMG-044, REQ-EMG-046

func NewCanonicalBundle

func NewCanonicalBundle(bundle Bundle) (CanonicalBundle, error)

NewCanonicalBundle constructs the one normalized semantic graph used by compatibility exporters. Projection errors are never hidden by falling back to the decoded YAML DTOs.

TRLC-LINKS: REQ-EMG-035, REQ-EMG-036

func NewCanonicalRequirements

func NewCanonicalRequirements(requirements RequirementsDocument) (CanonicalBundle, error)

NewCanonicalRequirements constructs canonical requirement concepts for requirement-only projections such as TRLC. The synthetic package is an adapter namespace, not an independently maintained domain graph.

TRLC-LINKS: REQ-EMG-035, REQ-EMG-036

func (CanonicalBundle) Diagnostics

func (c CanonicalBundle) Diagnostics() []SemanticDiagnostic

Diagnostics returns projection warnings and errors.

TRLC-LINKS: REQ-EMG-035, REQ-EMG-036

func (CanonicalBundle) Documents

func (c CanonicalBundle) Documents() Bundle

Documents returns the validated serialization DTOs associated with the canonical graph. Callers must not treat them as another normalized graph.

TRLC-LINKS: REQ-EMG-035, REQ-EMG-036

func (CanonicalBundle) Semantic

func (c CanonicalBundle) Semantic() SemanticModel

Semantic returns the canonical semantic model.

TRLC-LINKS: REQ-EMG-035, REQ-EMG-036

type CatalogDocument

type CatalogDocument struct {
	SchemaVersion int           `yaml:"schemaVersion"`
	Catalog       CatalogGroups `yaml:"catalog"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type CatalogEntry

type CatalogEntry struct {
	ID         string   `yaml:"id"`
	Name       string   `yaml:"name"`
	Definition string   `yaml:"definition"`
	Aliases    []string `yaml:"aliases"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL TRLC-LINKS: REQ-EMG-001

type CatalogGroups

type CatalogGroups struct {
	Systems            []CatalogEntry `yaml:"systems"`
	FunctionalGroups   []CatalogEntry `yaml:"functionalGroups"`
	FunctionalUnits    []CatalogEntry `yaml:"functionalUnits"`
	ReferencedElements []CatalogEntry `yaml:"referencedElements"`
	Actors             []CatalogEntry `yaml:"actors"`
	AttackVectors      []CatalogEntry `yaml:"attackVectors"`
	Events             []CatalogEntry `yaml:"events"`
	States             []CatalogEntry `yaml:"states"`
	Features           []CatalogEntry `yaml:"features"`
	Modes              []CatalogEntry `yaml:"modes"`
	Conditions         []CatalogEntry `yaml:"conditions"`
	DataTerms          []CatalogEntry `yaml:"dataTerms"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type CertificationLiaison

type CertificationLiaison struct {
	ID              string            `yaml:"id" json:"id"`
	Milestone       string            `yaml:"milestone" json:"milestone"`
	SubmissionRefs  []string          `yaml:"submissionRefs" json:"submissionRefs"`
	Findings        []string          `yaml:"findings" json:"findings"`
	AuthorityState  string            `yaml:"authorityState" json:"authorityState"`
	AuthorityRecord EvidenceReference `yaml:"authorityRecord" json:"authorityRecord"`
}

type ComplianceDocument

type ComplianceDocument struct {
	SchemaVersion int             `yaml:"schemaVersion"`
	Compliance    ComplianceModel `yaml:"compliance"`
}

ComplianceDocument is the schema-v2 compliance document. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046

type ComplianceMapping

type ComplianceMapping struct {
	ID                   string            `yaml:"id"`
	ProfileRef           string            `yaml:"profileRef"`
	ControlIDs           []string          `yaml:"controlIds"`
	ModelControlRef      string            `yaml:"modelControlRef"`
	AppliesTo            []string          `yaml:"appliesTo"`
	ImplementationType   string            `yaml:"implementationType"`
	ImplementationStatus string            `yaml:"implementationStatus"`
	Status               string            `yaml:"status"`
	Narrative            string            `yaml:"narrative"`
	Rationale            string            `yaml:"rationale"`
	Evidence             []ControlEvidence `yaml:"evidence"`
	InheritedFrom        []string          `yaml:"inheritedFrom"`
	ResponsibleRoles     []string          `yaml:"responsibleRoles"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, CTRL-TRACEABILITY-COVERAGE, FU-OSCAL-EXPORTER

type ComplianceModel

type ComplianceModel struct {
	Profiles []ComplianceProfile `yaml:"profiles"`
	Mappings []ComplianceMapping `yaml:"mappings"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, CTRL-TRACEABILITY-COVERAGE, FU-OSCAL-EXPORTER

type ComplianceProfile

type ComplianceProfile struct {
	ID          string `yaml:"id"`
	Href        string `yaml:"href"`
	CatalogHref string `yaml:"catalogHref"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, CTRL-TRACEABILITY-COVERAGE, FU-OSCAL-EXPORTER

type CompositionModel

type CompositionModel struct {
	Subsystems    []Subsystem    `yaml:"subsystems"`
	Allocations   []Allocation   `yaml:"allocations"`
	Satisfactions []Satisfaction `yaml:"satisfactions"`
}

CompositionModel holds parent-only composition data: referenced subsystems and the allocation of this system's requirements onto them. Absent in a leaf system. ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type ConfigurationArtifact

type ConfigurationArtifact struct {
	Path string `yaml:"path" json:"path"`
	Hash string `yaml:"hash" json:"hash"`
}

type ConfigurationBaseline

type ConfigurationBaseline struct {
	ID        string                  `yaml:"id" json:"id"`
	Version   string                  `yaml:"version" json:"version"`
	Hash      string                  `yaml:"hash" json:"hash"`
	Artifacts []ConfigurationArtifact `yaml:"artifacts" json:"artifacts"`
	State     string                  `yaml:"state" json:"state"`
}

type ConfigurationBuild

type ConfigurationBuild struct {
	ID              string                  `yaml:"id" json:"id"`
	Baseline        string                  `yaml:"baseline" json:"baseline"`
	Hash            string                  `yaml:"hash" json:"hash"`
	Artifacts       []ConfigurationArtifact `yaml:"artifacts" json:"artifacts"`
	Compiler        string                  `yaml:"compiler" json:"compiler"`
	CompilerOptions []string                `yaml:"compilerOptions" json:"compilerOptions"`
	Target          string                  `yaml:"target" json:"target"`
	Environment     string                  `yaml:"environment" json:"environment"`
	Reproducibility string                  `yaml:"reproducibility" json:"reproducibility"`
	Status          string                  `yaml:"status" json:"status"`
}

type ContractEntry

type ContractEntry struct {
	ID   string `yaml:"id"`
	Kind string `yaml:"kind"` // interface|capability|assumption
	Ref  string `yaml:"ref"`  // optional local id this contract entry exposes
	Note string `yaml:"note"`
}

ContractEntry is a single provided or required interface/capability/assumption. ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type ContractModel

type ContractModel struct {
	Provides []ContractEntry `yaml:"provides"` // the public surface a parent may allocate onto
	Requires []ContractEntry `yaml:"requires"` // what the system needs from its environment
}

ContractModel is a system's published, parent-agnostic boundary: what it provides and requires. ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type Control

type Control struct {
	ID          string `yaml:"id"`
	Name        string `yaml:"name"`
	Category    string `yaml:"category"`
	Description string `yaml:"description"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, CTRL-TRACEABILITY-COVERAGE

type ControlEvidence

type ControlEvidence struct {
	Path        string `yaml:"path"`
	Description string `yaml:"description"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, CTRL-TRACEABILITY-COVERAGE

type ControlVerification

type ControlVerification struct {
	ID                 string                        `yaml:"id"`
	ControlRef         string                        `yaml:"controlRef"`
	ThreatScenarioRefs []string                      `yaml:"threatScenarioRefs"`
	RiskRefs           []string                      `yaml:"riskRefs"`
	Method             string                        `yaml:"method"`
	Status             string                        `yaml:"status"`
	Owner              string                        `yaml:"owner"`
	LastTested         string                        `yaml:"lastTested"`
	Findings           []string                      `yaml:"findings"`
	Evidence           []ControlVerificationEvidence `yaml:"evidence"`
	// VerificationRefs names the tests that verify the control: inferred CODE
	// identifiers of test declarations (CODE-<PATH>--<NAME>) or requirement IDs
	// whose linked tests verify it.
	VerificationRefs []string `yaml:"verificationRefs"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, CTRL-TRACEABILITY-COVERAGE

type ControlVerificationEvidence

type ControlVerificationEvidence struct {
	Path        string `yaml:"path"`
	Description string `yaml:"description"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, CTRL-TRACEABILITY-COVERAGE

type DataObject

type DataObject struct {
	ID              string   `yaml:"id"`
	Name            string   `yaml:"name"`
	TermRef         string   `yaml:"termRef"`
	SchemaRef       string   `yaml:"schemaRef"`
	Sensitivity     string   `yaml:"sensitivity"`
	Classification  string   `yaml:"classification"`
	RegulatoryTags  []string `yaml:"regulatoryTags"`
	Retention       string   `yaml:"retention"`
	Confidentiality string   `yaml:"confidentiality"`
	Integrity       string   `yaml:"integrity"`
	Availability    string   `yaml:"availability"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type Decision

type Decision struct {
	ID           string   `yaml:"id"`
	Title        string   `yaml:"title"`
	Status       string   `yaml:"status"`
	Date         string   `yaml:"date"`
	Context      string   `yaml:"context"`
	Decision     string   `yaml:"decision"`
	Consequences []string `yaml:"consequences"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type DecisionsDocument

type DecisionsDocument struct {
	SchemaVersion int        `yaml:"schemaVersion"`
	Decisions     []Decision `yaml:"decisions"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type DependencyGuide

type DependencyGuide struct {
	PreferredSourceField string   `json:"preferredSourceField"`
	SourceKinds          []string `json:"sourceKinds"`
	WorkspaceFile        string   `json:"workspaceFile"`
	WorkspaceSchemaPath  string   `json:"workspaceSchemaPath"`
	RegistryEnvironment  string   `json:"registryEnvironment"`
	CacheDirectory       string   `json:"cacheDirectory"`
	Rules                []string `json:"rules"`
}

type DeploymentTarget

type DeploymentTarget struct {
	ID          string `yaml:"id"`
	Name        string `yaml:"name"`
	Environment string `yaml:"environment"`
	Region      string `yaml:"region"`
	Account     string `yaml:"account"`
	Cluster     string `yaml:"cluster"`
	Namespace   string `yaml:"namespace"`
	TrustZone   string `yaml:"trustZone"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, DEP-LOCAL-WORKSPACE, DEP-CI-PIPELINE

type DesignDocument

type DesignDocument struct {
	SchemaVersion int         `yaml:"schemaVersion"`
	Design        DesignModel `yaml:"design"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

func LoadDesign

func LoadDesign(path string) (DesignDocument, error)

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL TRLC-LINKS: REQ-EMG-001, REQ-EMG-044, REQ-EMG-046

type DesignFunctionalGroup

type DesignFunctionalGroup struct {
	ID    string                `yaml:"id"`
	Views map[string]DesignView `yaml:"views"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type DesignFunctionalUnit

type DesignFunctionalUnit struct {
	ID    string                `yaml:"id"`
	Group string                `yaml:"group"`
	Views map[string]DesignView `yaml:"views"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type DesignModel

type DesignModel struct {
	ID               string                  `yaml:"id"`
	Title            string                  `yaml:"title"`
	FunctionalGroups []DesignFunctionalGroup `yaml:"functionalGroups"`
	FunctionalUnits  []DesignFunctionalUnit  `yaml:"functionalUnits"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type DesignView

type DesignView struct {
	Title     string `yaml:"title"`
	Narrative string `yaml:"narrative"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-VIEW-PROJECTION

type DocumentControl

type DocumentControl struct {
	Identifier             string `yaml:"identifier"`
	Revision               string `yaml:"revision"`
	Status                 string `yaml:"status"`
	IssuedBy               string `yaml:"issuedBy"`
	IssueDate              string `yaml:"issueDate"`
	Language               string `yaml:"language"`
	DocumentType           string `yaml:"documentType"`
	Confidentiality        string `yaml:"confidentiality"`
	SecurityClassification string `yaml:"securityClassification"`
	ExportControlled       bool   `yaml:"exportControlled"`
	CountryOfOrigin        string `yaml:"countryOfOrigin"`
	ConfidentialityStamp   bool   `yaml:"confidentialityStamp"`
}

DocumentControl captures format-neutral identity, lifecycle, and handling metadata. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046

type DocumentDefinition

type DocumentDefinition struct {
	ID              string            `yaml:"id"`
	Title           string            `yaml:"title"`
	Kind            string            `yaml:"kind"`
	Purpose         string            `yaml:"purpose"`
	Audience        []string          `yaml:"audience"`
	StakeholderRefs []string          `yaml:"stakeholderRefs"`
	ReferenceRefs   []string          `yaml:"referenceRefs"`
	ContentRefs     []string          `yaml:"contentRefs"`
	Sections        []DocumentSection `yaml:"sections"`
	Control         DocumentControl   `yaml:"control"`
}

DocumentDefinition selects canonical model content for a formal document. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046

type DocumentReferences

type DocumentReferences struct {
	Catalog      string `yaml:"catalog"`
	Requirements string `yaml:"requirements"`
	Architecture string `yaml:"architecture"`
	Behavior     string `yaml:"behavior"`
	Assurance    string `yaml:"assurance"`
	Compliance   string `yaml:"compliance"`
	Views        string `yaml:"views"`
	Decisions    string `yaml:"decisions"`
	Aviation     string `yaml:"aviation,omitempty"`
}

DocumentReferences makes the complete schema-v2 domain document set explicit. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046

func ResolveDocumentReferences

func ResolveDocumentReferences(meta ModelMeta) (DocumentReferences, error)

ResolveDocumentReferences validates the explicit schema-v2 document map. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046, REQ-EMG-053

type DocumentSection

type DocumentSection struct {
	ID          string   `yaml:"id"`
	Title       string   `yaml:"title"`
	Narrative   string   `yaml:"narrative"`
	IncludeRefs []string `yaml:"includeRefs"`
}

DocumentSection adds authored prose and optional model selections to a document. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046

type Event

type Event struct {
	ID          string `yaml:"id"`
	Name        string `yaml:"name"`
	Description string `yaml:"description"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, EVT-MODEL-UPDATED, EVT-GENERATION-RUN-REQUESTED, EVT-VALIDATION-FAILED, EVT-ARTIFACT-GENERATED

type EvidenceReference

type EvidenceReference struct {
	ID      string `yaml:"id" json:"id"`
	Path    string `yaml:"path" json:"path"`
	URI     string `yaml:"uri" json:"uri"`
	Version string `yaml:"version" json:"version"`
	Hash    string `yaml:"hash" json:"hash"`
}

type Expected

type Expected struct {
	ID      string `yaml:"id"`
	Pattern string `yaml:"pattern"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type Flow

type Flow struct {
	ID                  string            `yaml:"id"`
	Title               string            `yaml:"title"`
	Kind                string            `yaml:"kind"`
	Methodology         string            `yaml:"methodology"`
	Direction           string            `yaml:"direction"`
	Frequency           string            `yaml:"frequency"`
	SourceRef           string            `yaml:"sourceRef"`
	DestinationRef      string            `yaml:"destinationRef"`
	Protocol            string            `yaml:"protocol"`
	Channel             string            `yaml:"channel"`
	Authentication      string            `yaml:"authentication"`
	EncryptionInTransit string            `yaml:"encryptionInTransit"`
	IntegrityProtection string            `yaml:"integrityProtection"`
	DataRefs            []string          `yaml:"dataRefs"`
	Description         string            `yaml:"description"`
	Criticality         string            `yaml:"criticality"`
	Threats             []string          `yaml:"threats"`
	Entry               []string          `yaml:"entry"`
	Exits               []string          `yaml:"exits"`
	Steps               []FlowStep        `yaml:"steps"`
	Properties          map[string]string `yaml:"properties"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type FlowStep

type FlowStep struct {
	ID                  string   `yaml:"id"`
	Ref                 string   `yaml:"ref"`
	Kind                string   `yaml:"kind"`
	FlowType            string   `yaml:"flowType"`
	Direction           string   `yaml:"direction"`
	Frequency           string   `yaml:"frequency"`
	SourceRef           string   `yaml:"sourceRef"`
	DestinationRef      string   `yaml:"destinationRef"`
	Action              string   `yaml:"action"`
	Channel             string   `yaml:"channel"`
	Protocol            string   `yaml:"protocol"`
	DataIn              []string `yaml:"dataIn"`
	DataOut             []string `yaml:"dataOut"`
	DataRefs            []string `yaml:"dataRefs"`
	InterfaceRef        string   `yaml:"interfaceRef"`
	TrustBoundaryRef    string   `yaml:"trustBoundaryRef"`
	BoundaryCrossing    bool     `yaml:"boundaryCrossing"`
	Authentication      string   `yaml:"authentication"`
	EncryptionInTransit string   `yaml:"encryptionInTransit"`
	IntegrityProtection string   `yaml:"integrityProtection"`
	Next                []string `yaml:"next"`
	OnError             []string `yaml:"onError"`
	Async               bool     `yaml:"async"`
	Optional            bool     `yaml:"optional"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type FunctionalGroup

type FunctionalGroup struct {
	ID          string   `yaml:"id"`
	Name        string   `yaml:"name"`
	Description string   `yaml:"description"`
	Prose       string   `yaml:"prose"`
	Tags        []string `yaml:"tags"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type FunctionalUnit

type FunctionalUnit struct {
	ID    string   `yaml:"id"`
	Name  string   `yaml:"name"`
	Group string   `yaml:"group"`
	Tags  []string `yaml:"tags"`
	Prose string   `yaml:"prose"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type HardwareInterface

type HardwareInterface struct {
	ID                   string `yaml:"id"`
	Name                 string `yaml:"name"`
	BusType              string `yaml:"busType"` // ARINC429|CAN|SPI|I2C|ethernet|cellular|discrete|analog
	From                 string `yaml:"from"`    // hardware item id
	To                   string `yaml:"to"`      // hardware item id
	Direction            string `yaml:"direction"`
	SoftwareInterfaceRef string `yaml:"softwareInterfaceRef"`
	Description          string `yaml:"description"`
}

HardwareInterface represents a physical connection between hardware items (ICD/IRS data). ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type HardwareItem

type HardwareItem struct {
	ID          string   `yaml:"id"`
	Name        string   `yaml:"name"`
	Kind        string   `yaml:"kind"` // processor|board|lru|sensor|actuator|bus|fpga|gateway|cloud
	PartNumber  string   `yaml:"partNumber"`
	Supplier    string   `yaml:"supplier"`
	SafetyLevel string   `yaml:"safetyLevel"` // DO-254 design assurance level (optional)
	Description string   `yaml:"description"`
	Hosts       []string `yaml:"hosts"` // functional unit or subsystem ids hosted on this item
}

HardwareItem represents a physical platform element (the DO-254 side of the HW/SW boundary). ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type IndependenceRecord

type IndependenceRecord struct {
	ID          string   `yaml:"id" json:"id"`
	SubjectRef  string   `yaml:"subjectRef" json:"subjectRef"`
	Producer    string   `yaml:"producer" json:"producer"`
	Verifier    string   `yaml:"verifier" json:"verifier"`
	ApprovalRef string   `yaml:"approvalRef" json:"approvalRef"`
	Evidence    []string `yaml:"evidence" json:"evidence"`
	State       string   `yaml:"state" json:"state"`
}

type InferenceHints

type InferenceHints struct {
	RuntimeSources []string `yaml:"runtimeSources"`
	// CodeSources is no longer supported: the code scope is the module root minus Exclude.
	// It is still decoded so validation can report it instead of failing to load.
	CodeSources              []string `yaml:"codeSources"`
	Exclude                  []string `yaml:"exclude"`
	ExpectedRuntimeKinds     []string `yaml:"expectedRuntimeKinds"`
	OwnershipResolutionOrder []string `yaml:"ownershipResolutionOrder"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-CODEMAP-INFERENCE, CTRL-TRACEABILITY-COVERAGE, DEP-LOCAL-WORKSPACE

type InputComposition

type InputComposition struct {
	Subsystems    []InputSubsystem `yaml:"subsystems"`
	Allocations   []Allocation     `yaml:"allocations"`
	Satisfactions []Satisfaction   `yaml:"satisfactions"`
}

InputComposition references manifest dependencies and their selected publications.

type InputSubsystem

type InputSubsystem struct {
	ID          string `yaml:"id"`
	Name        string `yaml:"name"`
	Dependency  string `yaml:"dependency"`
	Publication string `yaml:"publication"`
	Description string `yaml:"description"`
}

InputSubsystem identifies a child solely through a manifest dependency publication.

type Interface

type Interface struct {
	ID        string `yaml:"id"`
	Name      string `yaml:"name"`
	Protocol  string `yaml:"protocol"`
	Endpoint  string `yaml:"endpoint"`
	SchemaRef string `yaml:"schemaRef"`
	Owner     string `yaml:"owner"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type LifecycleDataRecord

type LifecycleDataRecord struct {
	ID            string            `yaml:"id" json:"id"`
	CategoryCode  string            `yaml:"categoryCode" json:"categoryCode"`
	CategoryName  string            `yaml:"categoryName" json:"categoryName"`
	Source        EvidenceReference `yaml:"source" json:"source"`
	Baseline      string            `yaml:"baseline" json:"baseline"`
	Owner         string            `yaml:"owner" json:"owner"`
	State         string            `yaml:"state" json:"state"`
	Approvals     []string          `yaml:"approvals" json:"approvals"`
	ObjectiveRefs []string          `yaml:"objectiveRefs" json:"objectiveRefs"`
}

func RecognizedLifecycleDataFamilies

func RecognizedLifecycleDataFamilies() []LifecycleDataRecord

TRLC-LINKS: REQ-EMG-053, REQ-EMG-055

type LintRun

type LintRun struct {
	ID         string `yaml:"id"`
	Mode       string `yaml:"mode"`
	CommaAsAnd bool   `yaml:"commaAsAnd"`
	CatalogRef string `yaml:"catalogRef"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-VALIDATION-ENGINE, CTRL-TRACEABILITY-COVERAGE, STATE-MODEL-INVALID, EVT-VALIDATION-FAILED

type LintWaiver

type LintWaiver struct {
	Code   string `yaml:"code"`
	Reason string `yaml:"reason"`
}

LintWaiver records an accepted EARS lint warning for one requirement, with the reason it does not apply. Errors are never waived. ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type ManifestDependency

type ManifestDependency struct {
	Alias        string   `yaml:"alias"`
	Path         string   `yaml:"path"`
	Version      string   `yaml:"version"`
	Publications []string `yaml:"publications"`
}

ManifestDependency selects publications from an exact external module. TRLC-LINKS: REQ-EMG-047, REQ-EMG-049, REQ-EMG-051

type ManifestDocument

type ManifestDocument struct {
	SchemaVersion  int                   `yaml:"schemaVersion"`
	Module         ModuleIdentity        `yaml:"module"`
	Documents      DocumentReferences    `yaml:"documents"`
	Dependencies   []ManifestDependency  `yaml:"dependencies"`
	Publications   []ManifestPublication `yaml:"publications"`
	InferenceHints InferenceHints        `yaml:"inferenceHints"`
}

ManifestDocument is the only schema-v2 model entry point. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046, REQ-EMG-047, REQ-EMG-049, REQ-EMG-051

type ManifestPublication

type ManifestPublication struct {
	ID           string   `yaml:"id"`
	Architecture []string `yaml:"architecture"`
	Behavior     []string `yaml:"behavior"`
	Assurance    []string `yaml:"assurance"`
	Compliance   []string `yaml:"compliance"`
	Requirements []string `yaml:"requirements"`
	Views        []string `yaml:"views"`
}

ManifestPublication exports typed stable identifiers from this module. TRLC-LINKS: REQ-EMG-047, REQ-EMG-049, REQ-EMG-051

type Mapping

type Mapping struct {
	Type        string `yaml:"type"`
	From        string `yaml:"from"`
	To          string `yaml:"to"`
	Description string `yaml:"description"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type MetamodelPropertyValue

type MetamodelPropertyValue struct {
	Values  []MetamodelValue `json:"values" yaml:"values"`
	Derived bool             `json:"derived,omitempty" yaml:"derived,omitempty"`
	Implied bool             `json:"implied,omitempty" yaml:"implied,omitempty"`
}

MetamodelPropertyValue preserves ordered multiplicity and records values supplied by derivation or implication rather than authored assignment.

TRLC-LINKS: REQ-EMG-038, REQ-EMG-039

type MetamodelValue

type MetamodelValue struct {
	Kind      string                    `json:"kind" yaml:"kind"`
	String    string                    `json:"string,omitempty" yaml:"string,omitempty"`
	Integer   *int64                    `json:"integer,omitempty" yaml:"integer,omitempty"`
	Real      *float64                  `json:"real,omitempty" yaml:"real,omitempty"`
	Boolean   *bool                     `json:"boolean,omitempty" yaml:"boolean,omitempty"`
	Reference string                    `json:"reference,omitempty" yaml:"reference,omitempty"`
	Object    map[string]MetamodelValue `json:"object,omitempty" yaml:"object,omitempty"`
	List      []MetamodelValue          `json:"list,omitempty" yaml:"list,omitempty"`
}

MetamodelValue is a lossless typed value used by official metamodel properties and Engineering Model extension properties.

TRLC-LINKS: REQ-EMG-038, REQ-EMG-039, REQ-EMG-040

func (*MetamodelValue) UnmarshalYAML

func (v *MetamodelValue) UnmarshalYAML(node *yaml.Node) error

UnmarshalYAML accepts the typed canonical form and legacy scalar/list/object extension values at the input boundary.

TRLC-LINKS: REQ-EMG-040

type ModelMeta

type ModelMeta struct {
	ID             string             `yaml:"id"`
	Title          string             `yaml:"title"`
	Introduction   string             `yaml:"introduction"`
	Documents      DocumentReferences `yaml:"-"`
	BaseCatalogRef string             `yaml:"-"`
}

ModelMeta is the aggregate model identity retained for downstream consumers.

type ModuleIdentity

type ModuleIdentity struct {
	Path         string `yaml:"path"`
	Version      string `yaml:"version"`
	ModelID      string `yaml:"modelId"`
	Title        string `yaml:"title"`
	Introduction string `yaml:"introduction"`
	Kind         string `yaml:"kind"`
}

ModuleIdentity is the published identity and human-facing metadata of a model. TRLC-LINKS: REQ-EMG-044, REQ-EMG-047

type Multiplicity

type Multiplicity struct {
	Lower *int `json:"lower,omitempty" yaml:"lower,omitempty"`
	Upper *int `json:"upper,omitempty" yaml:"upper,omitempty"`
}

Multiplicity is available to canonical features even though the current YAML schema only supplies multiplicity for a limited set of concepts.

type NAFConcern

type NAFConcern struct {
	ID              string   `yaml:"id"`
	Name            string   `yaml:"name"`
	Description     string   `yaml:"description"`
	StakeholderRefs []string `yaml:"stakeholderRefs"`
}

NAFConcern identifies an architecture concern and its existing stakeholders. TRLC-LINKS: REQ-EMG-041

type NAFProduct

type NAFProduct struct {
	ID          string   `yaml:"id"`
	Viewpoint   string   `yaml:"viewpoint"`
	Title       string   `yaml:"title"`
	ViewRef     string   `yaml:"viewRef"`
	ConcernRefs []string `yaml:"concernRefs"`
}

NAFProduct applies an official NAF viewpoint to an existing Engmod view. TRLC-LINKS: REQ-EMG-041, REQ-EMG-042

type NAFProfile

type NAFProfile struct {
	Framework               string           `yaml:"framework"`
	Version                 string           `yaml:"version"`
	ArchitectureDescription string           `yaml:"architectureDescription"`
	Stakeholders            []NAFStakeholder `yaml:"stakeholders"`
	Concerns                []NAFConcern     `yaml:"concerns"`
	Products                []NAFProduct     `yaml:"products"`
}

NAFProfile adds NATO Architecture Framework metadata to canonical model views. It does not define another architecture element graph. TRLC-LINKS: REQ-EMG-041 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-NAF-EXPORTER, REF-NAF-V4-1-SPECIFICATION

func (NAFProfile) Enabled

func (p NAFProfile) Enabled() bool

Enabled reports whether a NAF profile was authored. TRLC-LINKS: REQ-EMG-041

type NAFStakeholder

type NAFStakeholder struct {
	ActorRef string `yaml:"actorRef"`
	Role     string `yaml:"role"`
}

NAFStakeholder binds a NAF stakeholder role to an existing canonical actor. TRLC-LINKS: REQ-EMG-041

type ObjectiveReference

type ObjectiveReference struct {
	ID                   string   `yaml:"id" json:"id"`
	SourceReference      string   `yaml:"sourceReference" json:"sourceReference"`
	Applicability        string   `yaml:"applicability" json:"applicability"`
	IndependenceRequired bool     `yaml:"independenceRequired" json:"independenceRequired"`
	Rationale            string   `yaml:"rationale" json:"rationale"`
	EvidenceRefs         []string `yaml:"evidenceRefs" json:"evidenceRefs"`
	State                string   `yaml:"state" json:"state"`
}

type OfficialSysMLMetaclass

type OfficialSysMLMetaclass struct {
	Origin           string
	Abstract         bool
	Relationship     bool
	Supertypes       []string
	Properties       map[string]OfficialSysMLProperty
	RelationshipEnds []OfficialSysMLRelationshipEnd
}

type OfficialSysMLProperty

type OfficialSysMLProperty struct {
	ID          string
	Kind        string
	Type        string
	Lower       int
	Upper       int
	Ordered     bool
	Unique      bool
	Derived     bool
	ReadOnly    bool
	Containment bool
	Opposite    string
	Subsets     []string
	Redefines   []string
}

type OfficialSysMLRelationshipEnd

type OfficialSysMLRelationshipEnd struct {
	Property string
	Role     string
	Type     string
}

type POAMArtifact

type POAMArtifact struct {
	Path        string `yaml:"path"`
	Description string `yaml:"description"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type POAMItem

type POAMItem struct {
	ID              string         `yaml:"id"`
	RiskRef         string         `yaml:"riskRef"`
	Milestone       string         `yaml:"milestone"`
	DueDate         string         `yaml:"dueDate"`
	Status          string         `yaml:"status"`
	ResponsibleRole string         `yaml:"responsibleRole"`
	Artifacts       []POAMArtifact `yaml:"artifacts"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER

type ProblemReport

type ProblemReport struct {
	ID               string   `yaml:"id" json:"id"`
	Summary          string   `yaml:"summary" json:"summary"`
	AffectedRefs     []string `yaml:"affectedRefs" json:"affectedRefs"`
	Disposition      string   `yaml:"disposition" json:"disposition"`
	CorrectiveAction string   `yaml:"correctiveAction" json:"correctiveAction"`
	Evidence         []string `yaml:"evidence" json:"evidence"`
	State            string   `yaml:"state" json:"state"`
}

type ReferencedElement

type ReferencedElement struct {
	ID          string `yaml:"id"`
	Kind        string `yaml:"kind"`
	Layer       string `yaml:"layer"`
	Name        string `yaml:"name"`
	Description string `yaml:"description"`
	Version     string `yaml:"version"`
	Date        string `yaml:"date"`
	URI         string `yaml:"uri"`
	Publisher   string `yaml:"publisher"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type Requirement

type Requirement struct {
	ID                   string       `yaml:"id"`
	Title                string       `yaml:"title,omitempty"`
	Text                 string       `yaml:"text"`
	Notes                string       `yaml:"notes"`
	Category             string       `yaml:"category,omitempty"`
	Rationale            string       `yaml:"rationale,omitempty"`
	SourceRefs           []string     `yaml:"sourceRefs,omitempty"`
	VerificationMethods  []string     `yaml:"verificationMethods,omitempty"`
	VerificationCriteria string       `yaml:"verificationCriteria,omitempty"`
	Priority             string       `yaml:"priority,omitempty"`
	Criticality          string       `yaml:"criticality,omitempty"`
	Status               string       `yaml:"status,omitempty"`
	Derived              bool         `yaml:"derived,omitempty"`
	DerivedRationale     string       `yaml:"derivedRationale,omitempty"`
	Tags                 []string     `yaml:"tags,omitempty"`
	AppliesTo            []string     `yaml:"appliesTo"`
	LintWaivers          []LintWaiver `yaml:"lintWaivers,omitempty"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type RequirementAssurance

type RequirementAssurance struct {
	RequirementID           string   `yaml:"requirementId" json:"requirementId"`
	Level                   string   `yaml:"level" json:"level"`
	Derived                 bool     `yaml:"derived" json:"derived"`
	DerivedRationale        string   `yaml:"derivedRationale" json:"derivedRationale"`
	ParentRefs              []string `yaml:"parentRefs" json:"parentRefs"`
	ArchitectureRefs        []string `yaml:"architectureRefs" json:"architectureRefs"`
	CodeRefs                []string `yaml:"codeRefs" json:"codeRefs"`
	VerificationCriteria    string   `yaml:"verificationCriteria" json:"verificationCriteria"`
	SafetyFeedbackRecipient string   `yaml:"safetyFeedbackRecipient" json:"safetyFeedbackRecipient"`
	SafetyFeedbackStatus    string   `yaml:"safetyFeedbackStatus" json:"safetyFeedbackStatus"`
	SafetyFeedbackEvidence  []string `yaml:"safetyFeedbackEvidence" json:"safetyFeedbackEvidence"`
	Baseline                string   `yaml:"baseline" json:"baseline"`
	State                   string   `yaml:"state" json:"state"`
}

type RequirementsDocument

type RequirementsDocument struct {
	SchemaVersion int           `yaml:"schemaVersion"`
	LintRun       LintRun       `yaml:"lintRun"`
	Requirements  []Requirement `yaml:"requirements"`
	Expected      []Expected    `yaml:"expected"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

func LoadRequirements

func LoadRequirements(path string) (RequirementsDocument, error)

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL TRLC-LINKS: REQ-EMG-001, REQ-EMG-044, REQ-EMG-046

type Risk

type Risk struct {
	ID              string         `yaml:"id"`
	Title           string         `yaml:"title"`
	Statement       string         `yaml:"statement"`
	Status          string         `yaml:"status"`
	Likelihood      string         `yaml:"likelihood"`
	Impact          string         `yaml:"impact"`
	Response        string         `yaml:"response"`
	Owner           string         `yaml:"owner"`
	AppliesTo       []string       `yaml:"appliesTo"`
	RelatedControls []string       `yaml:"relatedControls"`
	AttackVectors   []string       `yaml:"attackVectors"`
	ThreatScenarios []string       `yaml:"threatScenarios"`
	Evidence        []RiskEvidence `yaml:"evidence"`
	ResidualRisk    string         `yaml:"residualRisk"`
	Rationale       string         `yaml:"rationale"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER

type RiskEvidence

type RiskEvidence struct {
	Path        string `yaml:"path"`
	Description string `yaml:"description"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER

type SQAAudit

type SQAAudit struct {
	ID                string   `yaml:"id" json:"id"`
	Scope             string   `yaml:"scope" json:"scope"`
	Auditor           string   `yaml:"auditor" json:"auditor"`
	Findings          []string `yaml:"findings" json:"findings"`
	CorrectiveActions []string `yaml:"correctiveActions" json:"correctiveActions"`
	Evidence          []string `yaml:"evidence" json:"evidence"`
	State             string   `yaml:"state" json:"state"`
}

type Satisfaction

type Satisfaction struct {
	Need string `yaml:"need"` // alias::ID
	By   string `yaml:"by"`   // alias::ID or local hardware item id
}

Satisfaction records how a published subsystem need is satisfied by a publication-qualified provider or a local hardware item. TRLC-LINKS: REQ-EMG-049, REQ-EMG-051 ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type SemanticContent

type SemanticContent struct {
	Imports       []SemanticImport       `json:"imports,omitempty" yaml:"imports,omitempty"`
	Elements      []SemanticElement      `json:"elements,omitempty" yaml:"elements,omitempty"`
	Relationships []SemanticRelationship `json:"relationships,omitempty" yaml:"relationships,omitempty"`
}

SemanticContent is the canonical YAML surface for concepts that cannot be expressed by legacy architecture fields. Legacy fields remain migration aliases and are adapted into these same primitives.

type SemanticDiagnostic

type SemanticDiagnostic struct {
	Code     string           `json:"code"`
	Severity SemanticSeverity `json:"severity"`
	Message  string           `json:"message"`
	Path     string           `json:"path,omitempty"`
}

SemanticDiagnostic records a projection limitation instead of silently dropping information.

func ValidateSemanticModel

func ValidateSemanticModel(semantic SemanticModel) []SemanticDiagnostic

ValidateSemanticModel checks invariants of the canonical projection independently of the YAML structures from which it was derived.

TRLC-LINKS: REQ-EMG-035, REQ-EMG-036, REQ-EMG-037 ENGMODEL-LINKS: DO-CANONICAL-SEMANTIC-MODEL, FU-VALIDATION-ENGINE

type SemanticElement

type SemanticElement struct {
	ID                 string                            `json:"id" yaml:"id"`
	Name               string                            `json:"name,omitempty" yaml:"name,omitempty"`
	Kind               SemanticElementKind               `json:"kind" yaml:"kind"`
	Metaclass          string                            `json:"metaclass,omitempty" yaml:"metaclass,omitempty"`
	Properties         map[string]MetamodelPropertyValue `json:"properties,omitempty" yaml:"properties,omitempty"`
	Namespace          string                            `json:"namespace,omitempty" yaml:"namespace,omitempty"`
	Owner              string                            `json:"owner,omitempty" yaml:"owner,omitempty"`
	TypeRef            string                            `json:"typeRef,omitempty" yaml:"typeRef,omitempty"`
	Multiplicity       *Multiplicity                     `json:"multiplicity,omitempty" yaml:"multiplicity,omitempty"`
	Ordered            bool                              `json:"ordered,omitempty" yaml:"ordered,omitempty"`
	Unique             *bool                             `json:"unique,omitempty" yaml:"unique,omitempty"`
	Conjugated         bool                              `json:"conjugated,omitempty" yaml:"conjugated,omitempty"`
	Specializes        []string                          `json:"specializes,omitempty" yaml:"specializes,omitempty"`
	Subsets            []string                          `json:"subsets,omitempty" yaml:"subsets,omitempty"`
	Redefines          []string                          `json:"redefines,omitempty" yaml:"redefines,omitempty"`
	ControlKind        string                            `json:"controlKind,omitempty" yaml:"controlKind,omitempty"`
	OccurrenceID       string                            `json:"occurrenceId,omitempty" yaml:"occurrenceId,omitempty"`
	PortionOf          string                            `json:"portionOf,omitempty" yaml:"portionOf,omitempty"`
	Variation          bool                              `json:"variation,omitempty" yaml:"variation,omitempty"`
	Variants           []string                          `json:"variants,omitempty" yaml:"variants,omitempty"`
	References         []string                          `json:"references,omitempty" yaml:"references,omitempty"`
	Features           []SemanticFeature                 `json:"features,omitempty" yaml:"features,omitempty"`
	Metadata           []SemanticMetadata                `json:"metadata,omitempty" yaml:"metadata,omitempty"`
	ExtensionNamespace string                            `json:"extensionNamespace,omitempty" yaml:"extensionNamespace,omitempty"`
	Extension          string                            `json:"extension,omitempty" yaml:"extension,omitempty"`
	Targets            []string                          `json:"targets,omitempty" yaml:"targets,omitempty"`
	Authored           bool                              `json:"-" yaml:"-"`
}

SemanticElement is the single canonical representation of an authored concept.

type SemanticElementKind

type SemanticElementKind string

SemanticElementKind identifies the SysML/KerML concept used by a canonical element.

const (
	ElementPackageDefinition          SemanticElementKind = "package_definition"
	ElementPartDefinition             SemanticElementKind = "part_definition"
	ElementPartUsage                  SemanticElementKind = "part_usage"
	ElementItemDefinition             SemanticElementKind = "item_definition"
	ElementItemUsage                  SemanticElementKind = "item_usage"
	ElementAttributeDefinition        SemanticElementKind = "attribute_definition"
	ElementAttributeUsage             SemanticElementKind = "attribute_usage"
	ElementPortDefinition             SemanticElementKind = "port_definition"
	ElementPortUsage                  SemanticElementKind = "port_usage"
	ElementInterfaceDefinition        SemanticElementKind = "interface_definition"
	ElementInterfaceUsage             SemanticElementKind = "interface_usage"
	ElementConnectionDefinition       SemanticElementKind = "connection_definition"
	ElementConnectionUsage            SemanticElementKind = "connection_usage"
	ElementActionDefinition           SemanticElementKind = "action_definition"
	ElementActionUsage                SemanticElementKind = "action_usage"
	ElementControlNode                SemanticElementKind = "control_node"
	ElementStateDefinition            SemanticElementKind = "state_definition"
	ElementStateUsage                 SemanticElementKind = "state_usage"
	ElementEventDefinition            SemanticElementKind = "event_definition"
	ElementEventUsage                 SemanticElementKind = "event_usage"
	ElementViewDefinition             SemanticElementKind = "view_definition"
	ElementViewUsage                  SemanticElementKind = "view_usage"
	ElementViewpointDefinition        SemanticElementKind = "viewpoint_definition"
	ElementViewpointUsage             SemanticElementKind = "viewpoint_usage"
	ElementRequirementDefinition      SemanticElementKind = "requirement_definition"
	ElementRequirementUsage           SemanticElementKind = "requirement_usage"
	ElementConcernDefinition          SemanticElementKind = "concern_definition"
	ElementConcernUsage               SemanticElementKind = "concern_usage"
	ElementStakeholderDefinition      SemanticElementKind = "stakeholder_definition"
	ElementStakeholderUsage           SemanticElementKind = "stakeholder_usage"
	ElementConstraintDefinition       SemanticElementKind = "constraint_definition"
	ElementConstraintUsage            SemanticElementKind = "constraint_usage"
	ElementCalculationDefinition      SemanticElementKind = "calculation_definition"
	ElementCalculationUsage           SemanticElementKind = "calculation_usage"
	ElementCaseDefinition             SemanticElementKind = "case_definition"
	ElementCaseUsage                  SemanticElementKind = "case_usage"
	ElementAnalysisCaseDefinition     SemanticElementKind = "analysis_case_definition"
	ElementAnalysisCaseUsage          SemanticElementKind = "analysis_case_usage"
	ElementVerificationCaseDefinition SemanticElementKind = "verification_case_definition"
	ElementVerificationCaseUsage      SemanticElementKind = "verification_case_usage"
	ElementUseCaseDefinition          SemanticElementKind = "use_case_definition"
	ElementUseCaseUsage               SemanticElementKind = "use_case_usage"
	ElementQuantityDefinition         SemanticElementKind = "quantity_definition"
	ElementUnitDefinition             SemanticElementKind = "unit_definition"
	ElementOccurrenceDefinition       SemanticElementKind = "occurrence_definition"
	ElementOccurrenceUsage            SemanticElementKind = "occurrence_usage"
	ElementIndividualDefinition       SemanticElementKind = "individual_definition"
	ElementIndividualUsage            SemanticElementKind = "individual_usage"
	ElementSnapshot                   SemanticElementKind = "snapshot"
	ElementTimeSlice                  SemanticElementKind = "time_slice"
	ElementExtension                  SemanticElementKind = "engineering_extension"
	ElementRequirement                SemanticElementKind = ElementRequirementDefinition
)

type SemanticExpression

type SemanticExpression struct {
	Kind       string               `json:"kind,omitempty" yaml:"kind,omitempty"`
	Language   string               `json:"language,omitempty" yaml:"language,omitempty"`
	Operator   string               `json:"operator,omitempty" yaml:"operator,omitempty"`
	Value      string               `json:"value,omitempty" yaml:"value,omitempty"`
	TypedValue *SemanticValue       `json:"typedValue,omitempty" yaml:"typedValue,omitempty"`
	Operands   []SemanticExpression `json:"operands,omitempty" yaml:"operands,omitempty"`
}

SemanticExpression preserves an expression as a typed tree or source expression.

type SemanticFeature

type SemanticFeature struct {
	Name         string              `json:"name" yaml:"name"`
	Kind         SemanticFeatureKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	Type         string              `json:"type,omitempty" yaml:"type,omitempty"`
	Direction    string              `json:"direction,omitempty" yaml:"direction,omitempty"`
	Multiplicity *Multiplicity       `json:"multiplicity,omitempty" yaml:"multiplicity,omitempty"`
	Ordered      bool                `json:"ordered,omitempty" yaml:"ordered,omitempty"`
	Unique       *bool               `json:"unique,omitempty" yaml:"unique,omitempty"`
	Conjugated   bool                `json:"conjugated,omitempty" yaml:"conjugated,omitempty"`
	Specializes  []string            `json:"specializes,omitempty" yaml:"specializes,omitempty"`
	Subsets      []string            `json:"subsets,omitempty" yaml:"subsets,omitempty"`
	Redefines    []string            `json:"redefines,omitempty" yaml:"redefines,omitempty"`
	Value        *SemanticExpression `json:"value,omitempty" yaml:"value,omitempty"`
	References   []string            `json:"references,omitempty" yaml:"references,omitempty"`
}

SemanticFeature is the common typed-feature representation used by exporters.

type SemanticFeatureKind

type SemanticFeatureKind string
const (
	FeatureAttribute SemanticFeatureKind = "attribute"
	FeaturePort      SemanticFeatureKind = "port"
	FeatureParameter SemanticFeatureKind = "parameter"
)

type SemanticImport

type SemanticImport struct {
	Namespace  string `json:"namespace" yaml:"namespace"`
	Imported   string `json:"imported" yaml:"imported"`
	Visibility string `json:"visibility,omitempty" yaml:"visibility,omitempty"`
	Recursive  bool   `json:"recursive,omitempty" yaml:"recursive,omitempty"`
}

type SemanticMetadata

type SemanticMetadata struct {
	Namespace  string                    `json:"namespace" yaml:"namespace"`
	Type       string                    `json:"type" yaml:"type"`
	Target     string                    `json:"target" yaml:"target"`
	Properties map[string]MetamodelValue `json:"properties,omitempty" yaml:"properties,omitempty"`
}

SemanticMetadata is a typed extension payload. Values are copied from the YAML-backed source object, so exporters can preserve information they cannot express as standard SysML concepts.

type SemanticModel

type SemanticModel struct {
	ID            string                 `json:"id"`
	Title         string                 `json:"title,omitempty"`
	Imports       []SemanticImport       `json:"imports,omitempty"`
	Elements      []SemanticElement      `json:"elements"`
	Relationships []SemanticRelationship `json:"relationships"`
}

SemanticModel is the canonical exporter-facing projection. It is derived from Bundle and is not a second authored or persistent model.

type SemanticProjectionError

type SemanticProjectionError struct {
	Diagnostics []SemanticDiagnostic
}

SemanticProjectionError preserves all canonical projection diagnostics.

func (*SemanticProjectionError) Error

func (e *SemanticProjectionError) Error() string

TRLC-LINKS: REQ-EMG-035, REQ-EMG-036

type SemanticQuantity

type SemanticQuantity struct {
	Value float64 `json:"value" yaml:"value"`
	Unit  string  `json:"unit" yaml:"unit"`
}

type SemanticRelationship

type SemanticRelationship struct {
	ID         string                            `json:"id" yaml:"id"`
	Kind       SemanticRelationshipKind          `json:"kind" yaml:"kind"`
	Metaclass  string                            `json:"metaclass,omitempty" yaml:"metaclass,omitempty"`
	Properties map[string]MetamodelPropertyValue `json:"properties,omitempty" yaml:"properties,omitempty"`
	Source     string                            `json:"source" yaml:"source"`
	Target     string                            `json:"target" yaml:"target"`
	Owner      string                            `json:"owner,omitempty" yaml:"owner,omitempty"`
	SourceType string                            `json:"sourceType,omitempty" yaml:"sourceType,omitempty"`
	ItemRef    string                            `json:"itemRef,omitempty" yaml:"itemRef,omitempty"`
	Triggers   []string                          `json:"triggers,omitempty" yaml:"triggers,omitempty"`
	Guard      *SemanticExpression               `json:"guard,omitempty" yaml:"guard,omitempty"`
	Effect     *SemanticExpression               `json:"effect,omitempty" yaml:"effect,omitempty"`
	Metadata   []SemanticMetadata                `json:"metadata,omitempty" yaml:"metadata,omitempty"`
}

SemanticRelationship preserves relationship identity, endpoints, and the original engineering relationship type.

type SemanticRelationshipKind

type SemanticRelationshipKind string

SemanticRelationshipKind identifies a typed relationship without reducing it to a generic edge.

const (
	RelationshipContainment    SemanticRelationshipKind = "containment"
	RelationshipDependency     SemanticRelationshipKind = "dependency"
	RelationshipTyping         SemanticRelationshipKind = "typing"
	RelationshipSpecialization SemanticRelationshipKind = "specialization"
	RelationshipSubsetting     SemanticRelationshipKind = "subsetting"
	RelationshipRedefinition   SemanticRelationshipKind = "redefinition"
	RelationshipConnection     SemanticRelationshipKind = "connection"
	RelationshipBinding        SemanticRelationshipKind = "binding"
	RelationshipTransfer       SemanticRelationshipKind = "transfer"
	RelationshipSuccession     SemanticRelationshipKind = "succession"
	RelationshipTransition     SemanticRelationshipKind = "transition"
	RelationshipEventTrigger   SemanticRelationshipKind = "event_trigger"
	RelationshipGuard          SemanticRelationshipKind = "guard"
	RelationshipEffect         SemanticRelationshipKind = "effect"
	RelationshipAllocation     SemanticRelationshipKind = "allocation"
	RelationshipSatisfaction   SemanticRelationshipKind = "satisfaction"
	RelationshipVerification   SemanticRelationshipKind = "verification"
	RelationshipVariant        SemanticRelationshipKind = "variant_membership"
	RelationshipReference      SemanticRelationshipKind = "reference"
	RelationshipExtension      SemanticRelationshipKind = "engineering_extension"
)

type SemanticSeverity

type SemanticSeverity string
const (
	SemanticSeverityError   SemanticSeverity = "error"
	SemanticSeverityWarning SemanticSeverity = "warning"
)

type SemanticValue

type SemanticValue struct {
	Kind      string            `json:"kind" yaml:"kind"`
	String    string            `json:"string,omitempty" yaml:"string,omitempty"`
	Integer   *int64            `json:"integer,omitempty" yaml:"integer,omitempty"`
	Real      *float64          `json:"real,omitempty" yaml:"real,omitempty"`
	Boolean   *bool             `json:"boolean,omitempty" yaml:"boolean,omitempty"`
	Reference string            `json:"reference,omitempty" yaml:"reference,omitempty"`
	Quantity  *SemanticQuantity `json:"quantity,omitempty" yaml:"quantity,omitempty"`
}

SemanticValue is the compact reusable representation for literals, references, quantities, and unit-bearing values.

type StableIdentifierGuide

type StableIdentifierGuide struct {
	Pattern  string            `json:"pattern"`
	Prefixes map[string]string `json:"prefixes"`
}

type State

type State struct {
	ID          string `yaml:"id"`
	Name        string `yaml:"name"`
	Description string `yaml:"description"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, STATE-MODEL-VALID, STATE-MODEL-INVALID, STATE-ARTIFACTS-FRESH

type StructuralCoverage

type StructuralCoverage struct {
	ID           string                 `yaml:"id" json:"id"`
	Metric       string                 `yaml:"metric" json:"metric"`
	Baseline     string                 `yaml:"baseline" json:"baseline"`
	Build        string                 `yaml:"build" json:"build"`
	ToolRefs     []string               `yaml:"toolRefs" json:"toolRefs"`
	Total        int                    `yaml:"total" json:"total"`
	Covered      int                    `yaml:"covered" json:"covered"`
	Uncovered    int                    `yaml:"uncovered" json:"uncovered"`
	Dispositions []UncoveredDisposition `yaml:"dispositions" json:"dispositions"`
	Evidence     []string               `yaml:"evidence" json:"evidence"`
	Reviewer     string                 `yaml:"reviewer" json:"reviewer"`
	Status       string                 `yaml:"status" json:"status"`
}

type Subsystem

type Subsystem struct {
	ID          string `yaml:"id"`
	Name        string `yaml:"name"`
	Dependency  string `yaml:"dependency"`
	Publication string `yaml:"publication"`
	Description string `yaml:"description"`
}

Subsystem is a downward reference to one publication selected from a manifest dependency. TRLC-LINKS: REQ-EMG-047, REQ-EMG-049, REQ-EMG-051 ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL

type ThreatAssumption

type ThreatAssumption struct {
	ID        string                     `yaml:"id"`
	Title     string                     `yaml:"title"`
	Statement string                     `yaml:"statement"`
	Status    string                     `yaml:"status"`
	Owner     string                     `yaml:"owner"`
	AppliesTo []string                   `yaml:"appliesTo"`
	Rationale string                     `yaml:"rationale"`
	Evidence  []ThreatAssumptionEvidence `yaml:"evidence"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER

type ThreatAssumptionEvidence

type ThreatAssumptionEvidence struct {
	Path        string `yaml:"path"`
	Description string `yaml:"description"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER

type ThreatMitigation

type ThreatMitigation struct {
	ID                string                     `yaml:"id"`
	ThreatScenarioRef string                     `yaml:"threatScenarioRef"`
	ControlRef        string                     `yaml:"controlRef"`
	Status            string                     `yaml:"status"`
	Effectiveness     string                     `yaml:"effectiveness"`
	Owner             string                     `yaml:"owner"`
	Notes             string                     `yaml:"notes"`
	VerificationRefs  []string                   `yaml:"verificationRefs"`
	Evidence          []ThreatMitigationEvidence `yaml:"evidence"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER, CTRL-TRACEABILITY-COVERAGE

type ThreatMitigationEvidence

type ThreatMitigationEvidence struct {
	Path        string `yaml:"path"`
	Description string `yaml:"description"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER

type ThreatOutOfScope

type ThreatOutOfScope struct {
	ID        string                     `yaml:"id"`
	Title     string                     `yaml:"title"`
	Reason    string                     `yaml:"reason"`
	Status    string                     `yaml:"status"`
	Owner     string                     `yaml:"owner"`
	AppliesTo []string                   `yaml:"appliesTo"`
	ExpiresOn string                     `yaml:"expiresOn"`
	Evidence  []ThreatOutOfScopeEvidence `yaml:"evidence"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER

type ThreatOutOfScopeEvidence

type ThreatOutOfScopeEvidence struct {
	Path        string `yaml:"path"`
	Description string `yaml:"description"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER

type ThreatScenario

type ThreatScenario struct {
	ID               string                   `yaml:"id"`
	Title            string                   `yaml:"title"`
	Summary          string                   `yaml:"summary"`
	Category         string                   `yaml:"category"`
	Stride           string                   `yaml:"stride"`
	CWE              []string                 `yaml:"cwe"`
	AttackVectorRef  string                   `yaml:"attackVectorRef"`
	AppliesTo        []string                 `yaml:"appliesTo"`
	FlowRefs         []string                 `yaml:"flowRefs"`
	EntryPoint       string                   `yaml:"entryPoint"`
	Preconditions    []string                 `yaml:"preconditions"`
	ExploitPath      []string                 `yaml:"exploitPath"`
	Likelihood       string                   `yaml:"likelihood"`
	Impact           string                   `yaml:"impact"`
	Severity         string                   `yaml:"severity"`
	Status           string                   `yaml:"status"`
	Owner            string                   `yaml:"owner"`
	RiskRef          string                   `yaml:"riskRef"`
	RelatedControls  []string                 `yaml:"relatedControls"`
	AssumptionRefs   []string                 `yaml:"assumptionRefs"`
	OutOfScopeRefs   []string                 `yaml:"outOfScopeRefs"`
	MitigationRefs   []string                 `yaml:"mitigationRefs"`
	VerificationRefs []string                 `yaml:"verificationRefs"`
	Detection        []string                 `yaml:"detection"`
	Evidence         []ThreatScenarioEvidence `yaml:"evidence"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER

type ThreatScenarioEvidence

type ThreatScenarioEvidence struct {
	Path        string `yaml:"path"`
	Description string `yaml:"description"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-THREAT-EXPORTER

type ToolAssessment

type ToolAssessment struct {
	Criterion               string   `yaml:"criterion" json:"criterion"`
	TQL                     string   `yaml:"tql" json:"tql"`
	OperationalRequirements []string `yaml:"operationalRequirements" json:"operationalRequirements"`
	Evidence                []string `yaml:"evidence" json:"evidence"`
}

type TrustBoundary

type TrustBoundary struct {
	ID           string   `yaml:"id"`
	Name         string   `yaml:"name"`
	Description  string   `yaml:"description"`
	BoundaryType string   `yaml:"boundaryType"`
	ParentRef    string   `yaml:"parentRef"`
	Members      []string `yaml:"members"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, TB-REPO-WORKSPACE, TB-EXTERNAL-VALIDATION-TOOLS

type UncoveredDisposition

type UncoveredDisposition struct {
	ID          string   `yaml:"id" json:"id"`
	Disposition string   `yaml:"disposition" json:"disposition"`
	Count       int      `yaml:"count" json:"count"`
	Rationale   string   `yaml:"rationale" json:"rationale"`
	Evidence    []string `yaml:"evidence" json:"evidence"`
	Reviewer    string   `yaml:"reviewer" json:"reviewer"`
	Status      string   `yaml:"status" json:"status"`
}

type VerificationExecution

type VerificationExecution struct {
	ID           string   `yaml:"id" json:"id"`
	ProcedureRef string   `yaml:"procedureRef" json:"procedureRef"`
	CaseRefs     []string `yaml:"caseRefs" json:"caseRefs"`
	Baseline     string   `yaml:"baseline" json:"baseline"`
	Build        string   `yaml:"build" json:"build"`
	Environment  string   `yaml:"environment" json:"environment"`
	Target       string   `yaml:"target" json:"target"`
	Producer     string   `yaml:"producer" json:"producer"`
	Verifier     string   `yaml:"verifier" json:"verifier"`
	Status       string   `yaml:"status" json:"status"`
	Result       string   `yaml:"result" json:"result"`
	Evidence     []string `yaml:"evidence" json:"evidence"`
	ApprovalRefs []string `yaml:"approvalRefs" json:"approvalRefs"`
}

type VerificationProcedure

type VerificationProcedure struct {
	ID          string   `yaml:"id" json:"id"`
	CaseRefs    []string `yaml:"caseRefs" json:"caseRefs"`
	Steps       []string `yaml:"steps" json:"steps"`
	Environment string   `yaml:"environment" json:"environment"`
	Target      string   `yaml:"target" json:"target"`
	Baseline    string   `yaml:"baseline" json:"baseline"`
	State       string   `yaml:"state" json:"state"`
}

type View

type View struct {
	ID                        string   `yaml:"id"`
	Kind                      string   `yaml:"kind"`
	Roots                     []string `yaml:"roots"`
	AuthoredStatus            string   `yaml:"authoredStatus"`
	AuthoredStatusExplanation string   `yaml:"authoredStatusExplanation"`
	IncludeKinds              []string `yaml:"includeKinds"`
	ExcludeKinds              []string `yaml:"excludeKinds"`
	IncludeMappings           []string `yaml:"includeMappings"`
	ExcludeMappings           []string `yaml:"excludeMappings"`
	MaxDepth                  int      `yaml:"maxDepth"`
	Audience                  string   `yaml:"audience"`
	Abstraction               string   `yaml:"abstraction"`
}

ENGMODEL-LINKS: FU-MODEL-LOADER, DO-ARCHITECTURE-MODEL, FU-VIEW-PROJECTION

type ViewsDocument

type ViewsDocument struct {
	SchemaVersion int                  `yaml:"schemaVersion"`
	Views         []View               `yaml:"views"`
	NAF           NAFProfile           `yaml:"naf"`
	Design        DesignModel          `yaml:"design"`
	Documents     []DocumentDefinition `yaml:"documents"`
}

ViewsDocument owns projections, NAF metadata, and authored narratives. TRLC-LINKS: REQ-EMG-044, REQ-EMG-046

type WorkspaceDocument

type WorkspaceDocument struct {
	SchemaVersion int                    `yaml:"schemaVersion"`
	Replacements  []WorkspaceReplacement `yaml:"replacements"`
}

WorkspaceDocument provides local development replacements for published CUE module identities. It is never included in a published module. ENGMODEL-LINKS: FU-MODEL-LOADER, FU-SYSTEM-COMPOSITION

func FindWorkspace

func FindWorkspace(start string) (WorkspaceDocument, string, error)

FindWorkspace finds the nearest engmod.work.yml at or above start. Like other workspace mechanisms, it may intentionally sit above multiple sibling Git repositories. TRLC-LINKS: REQ-EMG-048 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-SYSTEM-COMPOSITION

func FindWorkspaceWith

func FindWorkspaceWith(start, mode string) (WorkspaceDocument, string, error)

FindWorkspaceWith finds the model workspace for start under an explicit mode. An empty mode falls back to ENGMOD_WORK; "off" returns no workspace; any other value is a workspace file path (relative to the working directory) that is used without searching parent directories and must exist. TRLC-LINKS: REQ-EMG-048, REQ-EMG-063 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-SYSTEM-COMPOSITION

func LoadWorkspace

func LoadWorkspace(path string) (WorkspaceDocument, error)

LoadWorkspace loads and validates a local model workspace replacement file. TRLC-LINKS: REQ-EMG-048, REQ-EMG-049 ENGMODEL-LINKS: FU-MODEL-LOADER, FU-SYSTEM-COMPOSITION

func (WorkspaceDocument) ReplacementPath

func (w WorkspaceDocument) ReplacementPath(modulePath string) (string, bool)

ReplacementPath returns the authored local path for a CUE module identity. TRLC-LINKS: REQ-EMG-048

type WorkspaceReplacement

type WorkspaceReplacement struct {
	Module string `yaml:"module"`
	Path   string `yaml:"path"`
}

WorkspaceReplacement maps one CUE module identity to a local repository. ENGMODEL-LINKS: FU-MODEL-LOADER, FU-SYSTEM-COMPOSITION

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL