#4778 System->Subsystem->Component->Part

#4778 System->Subsystem->Component->Part

#4778 Provide a good reusable prompt to break down a user-specified system into subsystems, components and parts, producing a JSON object with the data

You are a systems engineering expert specializing in functional and physical decomposition. 

Your objective is to decompose the following system into a strict hierarchical breakdown: System -> Subsystems -> Components -> Parts.

### System to Decompose:

{{INSERT_SYSTEM_NAME_AND_CONTEXT_HERE}}

### Rules & Hierarchy Definitions:

1. **System**: The top-level entity fulfilling a complete operational mission.

2. **Subsystem**: Major functional groupings that execute distinct, specialized roles within the system.

3. **Component**: Self-contained assemblies or modules within a subsystem that perform a concrete task.

4. **Part**: The lowest practical, atomic physical or logical units making up each component (non-divisible without loss of identity).

5. Maintain technical precision, realistic engineering terminology, and exhaustiveness for key functional pathways.

6. Return **ONLY** a valid JSON object matching the schema below. Do not wrap it in conversational introductory or concluding text.

### Required JSON Schema:

{

  "system": {

    "name": "string",

    "description": "string",

    "subsystems": [

      {

        "id": "SUB-01",

        "name": "string",

        "function": "string",

        "components": [

          {

            "id": "COMP-01-01",

            "name": "string",

            "function": "string",

            "parts": [

              {

                "id": "PART-01-01-01",

                "name": "string",

                "type": "mechanical | electrical | software | structural | fluidic | optical",

                "description": "string"

              }

            ]

          }

        ]

      }

    ]

  }

}

Key Features of This Prompt

  • Explicit Hierarchy Definitions: Clarifies the boundaries between subsystem, component, and part so the model doesn't blend levels of abstraction.

  • Typing & Metadata: Incorporates functional descriptions, categorization tags (type), and hierarchical IDs (SUB-01, COMP-01-01) for clear downstream parsing.

  • Strict Output Constraint: Enforces valid JSON emission without markdown conversational wrappers, making it ready for automation pipelines or direct API consumption.


Modify this decomposition prompt so that it also maps the interfaces and data/power flow between subsystems and components.

You are a systems architecture expert specializing in functional, physical, and interface decomposition.

Your objective is to decompose a system into a strict hierarchy (System -> Subsystems -> Components -> Parts) and map the logical, electrical, and physical interfaces and flows (data, power, mechanical, fluidic) connecting them.

### System to Decompose:

{{INSERT_SYSTEM_NAME_AND_CONTEXT_HERE}}

### Guidelines:

1. **Hierarchy**:

   - **System**: The top-level operational entity.

   - **Subsystem**: Major functional groupings executing distinct roles.

   - **Component**: Discrete functional assemblies within a subsystem.

   - **Part**: Lowest-level, atomic units (physical or software elements).

2. **Interfaces & Flows**:

   - Explicitly define directional flows (e.g., source to destination).

   - Classify flows by type: `data`, `power`, `mechanical`, `fluidic`, or `optical`.

   - Map both **subsystem-level interactions** (macro boundaries) and **component-level interactions** (detailed signal/power routing).

   - Include standard physical/logical protocols or mediums (e.g., "CAN bus", "48V DC", "Hydraulic line", "SPI").

3. **Output Constraint**:

   - Return **ONLY** a valid JSON object matching the schema below. 

   - Ensure all `source_id` and `target_id` references correspond exactly to existing `id` values defined in the hierarchy.

   - Do not include conversational introductory or concluding text outside the JSON block.

### Required JSON Schema:

{

  "system": {

    "name": "string",

    "description": "string",

    "subsystems": [

      {

        "id": "SUB-01",

        "name": "string",

        "function": "string",

        "components": [

          {

            "id": "COMP-01-01",

            "name": "string",

            "function": "string",

            "parts": [

              {

                "id": "PART-01-01-01",

                "name": "string",

                "type": "mechanical | electrical | software | structural | fluidic | optical",

                "description": "string"

              }

            ]

          }

        ]

      }

    ],

    "subsystem_interfaces": [

      {

        "id": "IF-SUB-01",

        "source_id": "SUB-XX",

        "target_id": "SUB-YY",

        "flow_type": "data | power | mechanical | fluidic | optical",

        "medium_or_protocol": "string (e.g., CAN 2.0B, 12V DC, Coolant Loop)",

        "description": "string"

      }

    ],

    "component_interfaces": [

      {

        "id": "IF-COMP-01",

        "source_id": "COMP-XX-XX",

        "target_id": "COMP-YY-YY",

        "flow_type": "data | power | mechanical | fluidic | optical",

        "medium_or_protocol": "string (e.g., SPI bus, PWM signal, 400V DC bus)",

        "description": "string"

      }

    ]

  }

}

Key Architectural Enhancements

  • Explicit ID Referencing: The source_id and target_id fields constrain the model to point directly to the generated SUB-XX and COMP-XX-XX entities, ensuring the interface graph is directly queryable as an adjacency list or network graph.

  • Separation of Concerns: Macro system-level boundaries (subsystem_interfaces) are cleanly segregated from intra/inter-component routing (component_interfaces) to prevent structural bloat within nested component arrays.

  • Physical Medium & Protocol Typing: Captures not just that a flow exists, but the physical conveyance or protocol (e.g., Ethernet vs. CAN, or Hydraulic vs. High-Voltage DC).


Modify this prompt further to include failure modes, failure effects, and criticality scores for each component and interface.

You are a systems architecture and reliability engineering expert specializing in functional decomposition, interface mapping, and Failure Mode and Effects Analysis (FMEA / FMECA).

Your objective is to decompose a system into a strict hierarchy (System -> Subsystems -> Components -> Parts), map the directional interfaces (data, power, mechanical, fluidic), and integrate failure modes, effects, and criticality scores across all components and interfaces.

### System to Decompose:

{{INSERT_SYSTEM_NAME_AND_CONTEXT_HERE}}

### Guidelines:

1. **Structural Hierarchy**:

   - **System**: Operational entity at the top level.

   - **Subsystem**: Major functional domains (`SUB-XX`).

   - **Component**: Self-contained assemblies/units (`COMP-XX-XX`).

   - **Part**: Lowest physical/logical atomic elements (`PART-XX-XX-XX`).

2. **Interfaces & Flows**:

   - Explicitly connect elements using valid, existing `id` values for `source_id` and `target_id`.

   - Separate macro subsystem boundaries from detailed component-level routing.

   - Classify flows by type (`data`, `power`, `mechanical`, `fluidic`, `optical`) and protocol/medium (e.g., "CAN FD", "800V DC", "Hydraulic Line").

3. **Reliability & FMEA Integration**:

   - For every **Component** and **Interface**, define one or more credible failure modes.

   - **Severity (S)**: 1 (Negligible effect) to 10 (Catastrophic/Safety hazard without warning).

   - **Occurrence (O)**: 1 (Extremely unlikely) to 10 (Nearly inevitable / frequent).

   - **Detection (D)**: 1 (Definite detection before failure impact) to 10 (Undetectable).

   - **RPN (Risk Priority Number)**: Compute strictly as $S \times O \times D$ (integer from 1 to 1000).

   - **Criticality Level**: Assign `Low` (RPN < 100), `Medium` (100 <= RPN < 250), `High` (250 <= RPN < 500), or `Critical` (RPN >= 500 or Severity >= 9).

4. **Output Constraint**:

   - Return **ONLY** a valid JSON object matching the schema below.

   - Do not wrap the JSON with conversational conversational text or Markdown notes outside the code fence.

### Required JSON Schema:

{

  "system": {

    "name": "string",

    "description": "string",

    "subsystems": [

      {

        "id": "SUB-01",

        "name": "string",

        "function": "string",

        "components": [

          {

            "id": "COMP-01-01",

            "name": "string",

            "function": "string",

            "failure_modes": [

              {

                "id": "FM-COMP-01-01-01",

                "mode": "string (e.g., Thermal Runaway, Short to Ground, Memory Leak)",

                "local_effect": "string (Immediate consequence on the component)",

                "system_effect": "string (End consequence on system operation or safety)",

                "severity": 1,

                "occurrence": 1,

                "detection": 1,

                "rpn": 1,

                "criticality_level": "Low | Medium | High | Critical",

                "mitigation": "string"

              }

            ],

            "parts": [

              {

                "id": "PART-01-01-01",

                "name": "string",

                "type": "mechanical | electrical | software | structural | fluidic | optical",

                "description": "string"

              }

            ]

          }

        ]

      }

    ],

    "subsystem_interfaces": [

      {

        "id": "IF-SUB-01",

        "source_id": "SUB-XX",

        "target_id": "SUB-YY",

        "flow_type": "data | power | mechanical | fluidic | optical",

        "medium_or_protocol": "string",

        "description": "string",

        "failure_modes": [

          {

            "id": "FM-IF-SUB-01-01",

            "mode": "string (e.g., Bus Partition, Signal Loss, Line Rupture)",

            "local_effect": "string",

            "system_effect": "string",

            "severity": 1,

            "occurrence": 1,

            "detection": 1,

            "rpn": 1,

            "criticality_level": "Low | Medium | High | Critical",

            "mitigation": "string"

          }

        ]

      }

    ],

    "component_interfaces": [

      {

        "id": "IF-COMP-01",

        "source_id": "COMP-XX-XX",

        "target_id": "COMP-YY-YY",

        "flow_type": "data | power | mechanical | fluidic | optical",

        "medium_or_protocol": "string",

        "description": "string",

        "failure_modes": [

          {

            "id": "FM-IF-COMP-01-01",

            "mode": "string (e.g., Frame Drop, High Contact Resistance, Fluid Leakage)",

            "local_effect": "string",

            "system_effect": "string",

            "severity": 1,

            "occurrence": 1,

            "detection": 1,

            "rpn": 1,

            "criticality_level": "Low | Medium | High | Critical",

            "mitigation": "string"

          }

        ]

      }

    ]

  }

}

Key FMEA Enhancements

  • Standardized Risk Quantification: Embeds traditional FMEA metrics ($S, O, D$ on a 1–10 scale) alongside automated $RPN = S \times O \times D$ calculation constraints.

  • Separation of Local vs. System Effects: Directs the LLM to articulate both immediate subsystem degradation and broader operational/safety consequences.

  • Interface Reliability: Extends failure analysis to signal paths and fluid/power lines, where real-world systems experience high rates of connector degradation, latency spikes, and physical ruptures.


For all, convert to Pydantic/JSON Schema validation format

1. Simple Structural Decomposition (Prompt 1)

Pydantic Models (v2)

from enum import Enum

from typing import List

from pydantic import BaseModel, Field


class PartType(str, Enum):

    MECHANICAL = "mechanical"

    ELECTRICAL = "electrical"

    SOFTWARE = "software"

    STRUCTURAL = "structural"

    FLUIDIC = "fluidic"

    OPTICAL = "optical"


class Part(BaseModel):

    id: str = Field(..., pattern=r"^PART-\d{2}-\d{2}-\d{2}$", examples=["PART-01-01-01"])

    name: str

    type: PartType

    description: str


class Component(BaseModel):

    id: str = Field(..., pattern=r"^COMP-\d{2}-\d{2}$", examples=["COMP-01-01"])

    name: str

    function: str

    parts: List[Part]


class Subsystem(BaseModel):

    id: str = Field(..., pattern=r"^SUB-\d{2}$", examples=["SUB-01"])

    name: str

    function: str

    components: List[Component]


class SystemRoot(BaseModel):

    name: str

    description: str

    subsystems: List[Subsystem]


class SimpleSystemPayload(BaseModel):

    system: SystemRoot

JSON Schema

{

  "$schema": "https://json-schema.org/draft/2020-12/schema",

  "title": "SimpleSystemPayload",

  "type": "object",

  "required": ["system"],

  "properties": {

    "system": {

      "type": "object",

      "required": ["name", "description", "subsystems"],

      "properties": {

        "name": { "type": "string" },

        "description": { "type": "string" },

        "subsystems": {

          "type": "array",

          "items": {

            "type": "object",

            "required": ["id", "name", "function", "components"],

            "properties": {

              "id": { "type": "string", "pattern": "^SUB-\\d{2}$" },

              "name": { "type": "string" },

              "function": { "type": "string" },

              "components": {

                "type": "array",

                "items": {

                  "type": "object",

                  "required": ["id", "name", "function", "parts"],

                  "properties": {

                    "id": { "type": "string", "pattern": "^COMP-\\d{2}-\\d{2}$" },

                    "name": { "type": "string" },

                    "function": { "type": "string" },

                    "parts": {

                      "type": "array",

                      "items": {

                        "type": "object",

                        "required": ["id", "name", "type", "description"],

                        "properties": {

                          "id": { "type": "string", "pattern": "^PART-\\d{2}-\\d{2}-\\d{2}$" },

                          "name": { "type": "string" },

                          "type": { "type": "string", "enum": ["mechanical", "electrical", "software", "structural", "fluidic", "optical"] },

                          "description": { "type": "string" }

                        }

                      }

                    }

                  }

                }

              }

            }

          }

        }

      }

    }

  }

}

2. Decomposition with Interfaces & Flows (Prompt 2)

Pydantic Models (v2)

from enum import Enum

from typing import List, Set

from pydantic import BaseModel, Field, model_validator


class PartType(str, Enum):

    MECHANICAL = "mechanical"

    ELECTRICAL = "electrical"

    SOFTWARE = "software"

    STRUCTURAL = "structural"

    FLUIDIC = "fluidic"

    OPTICAL = "optical"


class FlowType(str, Enum):

    DATA = "data"

    POWER = "power"

    MECHANICAL = "mechanical"

    FLUIDIC = "fluidic"

    OPTICAL = "optical"


class Part(BaseModel):

    id: str = Field(..., pattern=r"^PART-\d{2}-\d{2}-\d{2}$")

    name: str

    type: PartType

    description: str


class Component(BaseModel):

    id: str = Field(..., pattern=r"^COMP-\d{2}-\d{2}$")

    name: str

    function: str

    parts: List[Part]


class Subsystem(BaseModel):

    id: str = Field(..., pattern=r"^SUB-\d{2}$")

    name: str

    function: str

    components: List[Component]


class SubsystemInterface(BaseModel):

    id: str = Field(..., pattern=r"^IF-SUB-\d{2}$")

    source_id: str = Field(..., pattern=r"^SUB-\d{2}$")

    target_id: str = Field(..., pattern=r"^SUB-\d{2}$")

    flow_type: FlowType

    medium_or_protocol: str

    description: str


class ComponentInterface(BaseModel):

    id: str = Field(..., pattern=r"^IF-COMP-\d{2}$")

    source_id: str = Field(..., pattern=r"^COMP-\d{2}-\d{2}$")

    target_id: str = Field(..., pattern=r"^COMP-\d{2}-\d{2}$")

    flow_type: FlowType

    medium_or_protocol: str

    description: str


class SystemWithFlows(BaseModel):

    name: str

    description: str

    subsystems: List[Subsystem]

    subsystem_interfaces: List[SubsystemInterface]

    component_interfaces: List[ComponentInterface]


    @model_validator(mode="after")

    def validate_references(self) -> "SystemWithFlows":

        sub_ids: Set[str] = {s.id for s in self.subsystems}

        comp_ids: Set[str] = {c.id for s in self.subsystems for c in s.components}


        for iface in self.subsystem_interfaces:

            if iface.source_id not in sub_ids or iface.target_id not in sub_ids:

                raise ValueError(f"Interface {iface.id} references non-existent subsystem.")


        for iface in self.component_interfaces:

            if iface.source_id not in comp_ids or iface.target_id not in comp_ids:

                raise ValueError(f"Interface {iface.id} references non-existent component.")


        return self


class InterfacesPayload(BaseModel):

    system: SystemWithFlows

JSON Schema

{

  "$schema": "https://json-schema.org/draft/2020-12/schema",

  "title": "InterfacesPayload",

  "type": "object",

  "required": ["system"],

  "properties": {

    "system": {

      "type": "object",

      "required": ["name", "description", "subsystems", "subsystem_interfaces", "component_interfaces"],

      "properties": {

        "name": { "type": "string" },

        "description": { "type": "string" },

        "subsystems": {

          "type": "array",

          "items": {

            "type": "object",

            "required": ["id", "name", "function", "components"],

            "properties": {

              "id": { "type": "string", "pattern": "^SUB-\\d{2}$" },

              "name": { "type": "string" },

              "function": { "type": "string" },

              "components": {

                "type": "array",

                "items": {

                  "type": "object",

                  "required": ["id", "name", "function", "parts"],

                  "properties": {

                    "id": { "type": "string", "pattern": "^COMP-\\d{2}-\\d{2}$" },

                    "name": { "type": "string" },

                    "function": { "type": "string" },

                    "parts": {

                      "type": "array",

                      "items": {

                        "type": "object",

                        "required": ["id", "name", "type", "description"],

                        "properties": {

                          "id": { "type": "string", "pattern": "^PART-\\d{2}-\\d{2}-\\d{2}$" },

                          "name": { "type": "string" },

                          "type": { "type": "string", "enum": ["mechanical", "electrical", "software", "structural", "fluidic", "optical"] },

                          "description": { "type": "string" }

                        }

                      }

                    }

                  }

                }

              }

            }

          }

        },

        "subsystem_interfaces": {

          "type": "array",

          "items": {

            "type": "object",

            "required": ["id", "source_id", "target_id", "flow_type", "medium_or_protocol", "description"],

            "properties": {

              "id": { "type": "string", "pattern": "^IF-SUB-\\d{2}$" },

              "source_id": { "type": "string", "pattern": "^SUB-\\d{2}$" },

              "target_id": { "type": "string", "pattern": "^SUB-\\d{2}$" },

              "flow_type": { "type": "string", "enum": ["data", "power", "mechanical", "fluidic", "optical"] },

              "medium_or_protocol": { "type": "string" },

              "description": { "type": "string" }

            }

          }

        },

        "component_interfaces": {

          "type": "array",

          "items": {

            "type": "object",

            "required": ["id", "source_id", "target_id", "flow_type", "medium_or_protocol", "description"],

            "properties": {

              "id": { "type": "string", "pattern": "^IF-COMP-\\d{2}$" },

              "source_id": { "type": "string", "pattern": "^COMP-\\d{2}-\\d{2}$" },

              "target_id": { "type": "string", "pattern": "^COMP-\\d{2}-\\d{2}$" },

              "flow_type": { "type": "string", "enum": ["data", "power", "mechanical", "fluidic", "optical"] },

              "medium_or_protocol": { "type": "string" },

              "description": { "type": "string" }

            }

          }

        }

      }

    }

  }

}

3. Full FMEA / FMECA Decomposition (Prompt 3)

Pydantic Models (v2)

from enum import Enum

from typing import List, Set

from pydantic import BaseModel, Field, model_validator


class CriticalityLevel(str, Enum):

    LOW = "Low"

    MEDIUM = "Medium"

    HIGH = "High"

    CRITICAL = "Critical"


class FailureMode(BaseModel):

    id: str = Field(..., pattern=r"^FM-(COMP|IF-SUB|IF-COMP)-\d{2}(-\d{2})*-\d{2}$")

    mode: str

    local_effect: str

    system_effect: str

    severity: int = Field(..., ge=1, le=10)

    occurrence: int = Field(..., ge=1, le=10)

    detection: int = Field(..., ge=1, le=10)

    rpn: int = Field(..., ge=1, le=1000)

    criticality_level: CriticalityLevel

    mitigation: str


    @model_validator(mode="after")

    def compute_and_verify_metrics(self) -> "FailureMode":

        expected_rpn = self.severity * self.occurrence * self.detection

        if self.rpn != expected_rpn:

            raise ValueError(f"RPN mismatch for {self.id}: given {self.rpn}, expected {expected_rpn}")

        return self


class PartType(str, Enum):

    MECHANICAL = "mechanical"

    ELECTRICAL = "electrical"

    SOFTWARE = "software"

    STRUCTURAL = "structural"

    FLUIDIC = "fluidic"

    OPTICAL = "optical"


class FlowType(str, Enum):

    DATA = "data"

    POWER = "power"

    MECHANICAL = "mechanical"

    FLUIDIC = "fluidic"

    OPTICAL = "optical"


class Part(BaseModel):

    id: str = Field(..., pattern=r"^PART-\d{2}-\d{2}-\d{2}$")

    name: str

    type: PartType

    description: str


class FMEAComponent(BaseModel):

    id: str = Field(..., pattern=r"^COMP-\d{2}-\d{2}$")

    name: str

    function: str

    failure_modes: List[FailureMode] = Field(default_factory=list)

    parts: List[Part]


class FMEASubsystem(BaseModel):

    id: str = Field(..., pattern=r"^SUB-\d{2}$")

    name: str

    function: str

    components: List[FMEAComponent]


class FMEASubsystemInterface(BaseModel):

    id: str = Field(..., pattern=r"^IF-SUB-\d{2}$")

    source_id: str = Field(..., pattern=r"^SUB-\d{2}$")

    target_id: str = Field(..., pattern=r"^SUB-\d{2}$")

    flow_type: FlowType

    medium_or_protocol: str

    description: str

    failure_modes: List[FailureMode] = Field(default_factory=list)


class FMEAComponentInterface(BaseModel):

    id: str = Field(..., pattern=r"^IF-COMP-\d{2}$")

    source_id: str = Field(..., pattern=r"^COMP-\d{2}-\d{2}$")

    target_id: str = Field(..., pattern=r"^COMP-\d{2}-\d{2}$")

    flow_type: FlowType

    medium_or_protocol: str

    description: str

    failure_modes: List[FailureMode] = Field(default_factory=list)


class FMEASystem(BaseModel):

    name: str

    description: str

    subsystems: List[FMEASubsystem]

    subsystem_interfaces: List[FMEASubsystemInterface]

    component_interfaces: List[FMEAComponentInterface]


    @model_validator(mode="after")

    def validate_references(self) -> "FMEASystem":

        sub_ids: Set[str] = {s.id for s in self.subsystems}

        comp_ids: Set[str] = {c.id for s in self.subsystems for c in s.components}


        for iface in self.subsystem_interfaces:

            if iface.source_id not in sub_ids or iface.target_id not in sub_ids:

                raise ValueError(f"Interface {iface.id} references missing subsystem ID.")


        for iface in self.component_interfaces:

            if iface.source_id not in comp_ids or iface.target_id not in comp_ids:

                raise ValueError(f"Interface {iface.id} references missing component ID.")


        return self


class FMEAPayload(BaseModel):

    system: FMEASystem


JSON Schema

{

  "$schema": "https://json-schema.org/draft/2020-12/schema",

  "title": "FMEAPayload",

  "type": "object",

  "required": ["system"],

  "definitions": {

    "FailureMode": {

      "type": "object",

      "required": ["id", "mode", "local_effect", "system_effect", "severity", "occurrence", "detection", "rpn", "criticality_level", "mitigation"],

      "properties": {

        "id": { "type": "string", "pattern": "^FM-(COMP|IF-SUB|IF-COMP)-\\d{2}(-\\d{2})*-\\d{2}$" },

        "mode": { "type": "string" },

        "local_effect": { "type": "string" },

        "system_effect": { "type": "string" },

        "severity": { "type": "integer", "minimum": 1, "maximum": 10 },

        "occurrence": { "type": "integer", "minimum": 1, "maximum": 10 },

        "detection": { "type": "integer", "minimum": 1, "maximum": 10 },

        "rpn": { "type": "integer", "minimum": 1, "maximum": 1000 },

        "criticality_level": { "type": "string", "enum": ["Low", "Medium", "High", "Critical"] },

        "mitigation": { "type": "string" }

      }

    }

  },

  "properties": {

    "system": {

      "type": "object",

      "required": ["name", "description", "subsystems", "subsystem_interfaces", "component_interfaces"],

      "properties": {

        "name": { "type": "string" },

        "description": { "type": "string" },

        "subsystems": {

          "type": "array",

          "items": {

            "type": "object",

            "required": ["id", "name", "function", "components"],

            "properties": {

              "id": { "type": "string", "pattern": "^SUB-\\d{2}$" },

              "name": { "type": "string" },

              "function": { "type": "string" },

              "components": {

                "type": "array",

                "items": {

                  "type": "object",

                  "required": ["id", "name", "function", "failure_modes", "parts"],

                  "properties": {

                    "id": { "type": "string", "pattern": "^COMP-\\d{2}-\\d{2}$" },

                    "name": { "type": "string" },

                    "function": { "type": "string" },

                    "failure_modes": {

                      "type": "array",

                      "items": { "$ref": "#/definitions/FailureMode" }

                    },

                    "parts": {

                      "type": "array",

                      "items": {

                        "type": "object",

                        "required": ["id", "name", "type", "description"],

                        "properties": {

                          "id": { "type": "string", "pattern": "^PART-\\d{2}-\\d{2}-\\d{2}$" },

                          "name": { "type": "string" },

                          "type": { "type": "string", "enum": ["mechanical", "electrical", "software", "structural", "fluidic", "optical"] },

                          "description": { "type": "string" }

                        }

                      }

                    }

                  }

                }

              }

            }

          }

        },

        "subsystem_interfaces": {

          "type": "array",

          "items": {

            "type": "object",

            "required": ["id", "source_id", "target_id", "flow_type", "medium_or_protocol", "description", "failure_modes"],

            "properties": {

              "id": { "type": "string", "pattern": "^IF-SUB-\\d{2}$" },

              "source_id": { "type": "string", "pattern": "^SUB-\\d{2}$" },

              "target_id": { "type": "string", "pattern": "^SUB-\\d{2}$" },

              "flow_type": { "type": "string", "enum": ["data", "power", "mechanical", "fluidic", "optical"] },

              "medium_or_protocol": { "type": "string" },

              "description": { "type": "string" },

              "failure_modes": {

                "type": "array",

                "items": { "$ref": "#/definitions/FailureMode" }

              }

            }

          }

        },

        "component_interfaces": {

          "type": "array",

          "items": {

            "type": "object",

            "required": ["id", "source_id", "target_id", "flow_type", "medium_or_protocol", "description", "failure_modes"],

            "properties": {

              "id": { "type": "string", "pattern": "^IF-COMP-\\d{2}$" },

              "source_id": { "type": "string", "pattern": "^COMP-\\d{2}-\\d{2}$" },

              "target_id": { "type": "string", "pattern": "^COMP-\\d{2}-\\d{2}$" },

              "flow_type": { "type": "string", "enum": ["data", "power", "mechanical", "fluidic", "optical"] },

              "medium_or_protocol": { "type": "string" },

              "description": { "type": "string" },

              "failure_modes": {

                "type": "array",

                "items": { "$ref": "#/definitions/FailureMode" }

              }

            }

          }

        }

      }

    }

  }

}


From <https://gemini.google.com/app/52e75773463e8074>  Google Gemini (3.8 Flash)

Comments

Popular posts from this blog

#4297 ISS Astronaut Unable to Speak

#761 New Ways to Access Online Content, particularly Virtual Reality Content

#3356 PHP and JavaScript to Retrieve and Set an API_Key